2017-03-08 174 views
0

我試圖點擊Robotframework使用Selenium2Library的彈出窗口上的按鈕/元素:無法找到元素

Click Element name=OK 

但Robotframework我得到以下錯誤:

ValueError: Element locator 'name=OK' did not match any elements. 

我相信這是由於ui-widget覆蓋不會消失。下面是從HTML代碼片段,包含OK按鈕,用戶界面窗口小部件疊加:

<button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">OK</span></button> 

<div class="ui-widget-overlay" style="width: 1793px; height: 620px; z-index: 1005;"></div> 

我知道,我可以成功地點擊元素使用XPath,而XPath是在這種情況下,動態的,我想使用固定值。此外,「點擊按鈕」關鍵字也不起作用。

請讓我知道我可以如何去做這件事。

+0

如果沒有點擊元素子元素,則例外情況會有所不同 - 」無法單擊該元素,因爲座標上的另一個元素會收到點擊「行中的某些內容 - 無法記住確切的措辭。這一字面意思是Selenium無法在DOM中匹配這樣的元素。 – Todor

回答

0

您是否嘗試過查看按鈕的類屬性?對我來說,這聽起來可能會提供更穩定的xpath或css引用。例如,//button[contains(@class, 'ui-button')]

0

您錯誤地將按鈕(OK)文本誤解爲其name屬性。屬性是XML/HTML標記的一部分,例如它應該是這樣的:

<button class="some values" name"OK"> 

,它不在樣本中。

當你正在尋找的特定按鈕,通過它顯示的文字,這個XPath定位器會匹配它:

xpath=//button[span[@class="ui-button-text" and text()="OK"]] 

表達寫着「匹配其作爲直接孩子button元素的span與類和文本「