簡體   English   中英

CSS選擇器路徑-TestComplete Javascript無法單擊按鈕

[英]CSS Selector Path - TestComplete Javascript Can't Click the Button

我有這段HT​​ML代碼

在此處輸入圖片說明

我正在使用Testcomplete(Javascript)定位按鈕並嘗試單擊它。 我認為這更多是關於我的CSS路徑/ Javascript,而不是TestComplete本身。

我嘗試了這段代碼,它工作正常

var path2 = "#Table > div > table > tfoot > tr > th:last-child > span > div";
var z = Page.QuerySelector(path2);
z.Click();   // Works Fine

我也嘗試過這個並且效果很好

var path2 = "#Table > div > table > tfoot > tr > th:nth-child(7) > span > div";
var z = Page.QuerySelector(path2);
z.Click();  //Works Fine

但是當我嘗試這個時,它不會找到並單擊按鈕

var path2 = "#Table > div > table > tfoot > tr";   // path to parent table
var z = Page.QuerySelector(path2);
var y = z.QuerySelector('div.blue'); // Look for the child from that parent with tag div and class blue
Log.message(y.getAttribute("class"));  // Will return "button blue w-icon footer-add"
y.Click();  // Will return Javascript Runtime Error. y.Click is not a function

我不知道為什么如果我先找到父節點然后搜索它的子節點,Javascript將無法找到它並單擊它?

QuerySelector方法(頁面對象) TestComplete幫助主題中的以下文本可以解釋這種現象的原因。

結果值

如果TestComplete Web對象與指定的選擇器匹配,則該方法返回此對象。

如果沒有匹配的TestComplete測試對象,則該方法返回適當的HTML對象。

在您的情況下,第一個找到的對象( var z = Page.QuerySelector(path2); )沒有相應的TestComplete對象,因此將返回本機HTML對象。 當查詢第二個對象( var y = z.QuerySelector('div.blue'); )時,實際上是調用本機QuerySelector方法,而不是調用可以返回TestComplete對象的TestComplete方法。 因此,即使存在相應的TestComplete對象,您也將通過第二次查詢獲得本機對象。 Click方法將附加到TestComplete對象,並且在使用本機HTML對象時不能使用它。

因此,在您的情況下,將長途分成兩部分的唯一選擇似乎是:

  var path2 = "#Table > div > table";
  var z = Page.QuerySelector(path2);
  var y = z.QuerySelector('tfoot > tr > th:last-child > span > div.blue');
  Log.message(y.getAttribute("class"));
  y.Click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM