2017-07-19 60 views
1

無法點擊Public按鈕。無法點擊div標籤內的元素

我曾嘗試下面的代碼,並收到錯誤消息

沒有這樣的元素:找不到元素:

WebElement el2 = driver.findElement(By.xpath("//div[contains(@class, 'title') and text()='Public']")); 
JavascriptExecutor executor2 = (JavascriptExecutor)driver; 
executor2.executeScript("arguments[0].click()", el2); 

附上截圖。

+2

搜索論壇的問題已被多次回答。 –

回答

0

這裏有兩件事情可能導致沒有這樣的元素例外:

  1. 該元素的CSS值可能有text-transform: capitalize。如果是這種情況,那麼如果html中的實際文本值是'public',那麼XPath將無法找到text()='Public'。嘗試使用text()='public',或者查看非區分大小寫的方法。

  2. 該頁面尚未完全加載。嘗試逐步使用調試器逐步完成代碼(爲頁面加載提供了大量時間)。如果它和計時一樣簡單,那麼您可以在查找元素之前添加一個WebDriver等待。

+0

你可以請分享一些關於'text-transform:capitalize'的例外。謝謝 – DebanjanB

+2

它將大寫網頁上的單詞,但不會在DOM中。所以WebDriver會尋找'Public'(因爲這就是開發人員在網頁上看到的),但是DOM將包含'public'(因爲css不會修改DOM,只能修改網頁)。 – stewartm

+0

感謝您分享這些信息。 – DebanjanB