[英]Clicking on span element existing in li in selenium
我一直在硒中嘗試單擊具有名為bullet的類的span元素。 這是一個樹形結構,單擊后即可展開它的子級。 我已經嘗試過以下方式,但無法正常工作。 下面是UI代碼
<ul id="treelist" class="ltree">
<li class="liClosed">
<span class="bullet"> </span>
<b>Setup</b>
<ul>
<li></li>
<li></li>............
.....................
</ul>
</li>
</ul>
錯誤是:給定的選擇器// * ul [@ id ='treelist'] // li [2] // span無效或沒有導致WebElement
我使用的代碼是:
WebDriver driver = new FirefoxDriver();
driver.get("http://somewebapp");
WebElement userElement = driver.findElement(By.xpath("//*ul[@id='treelist']//li[2]//span"));
我嘗試了多種編輯xpath的方法,但沒有成功。 有人可以幫忙解決這個問題嗎?
XPath表達式確實無效,請在ul
之前刪除*
:
//ul[@id='treelist']//li[2]//span
這是找到所需的span
標簽的另一種選擇:
//ul[@id='treelist']//span[@class='bullet']
或者,使用CSS選擇器 :
driver.findElement(By.cssSelector("ul#treelist span.bullet"));
如果您不依賴XPath,可以嘗試使用簡單的CSS選擇器。
WebElement userElement = driver.findElement(By.cssSelector("span.bullet"));
看起來您需要處理框架內部存在的元素。 您可以在Google上找到許多有關如何執行此操作的示例,但這是SO的示例。
您的span.bullet is not
第二個li
,而是在第一個li
內。 嘗試
//ul[@id='treelist']//li[1]//span
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.