我在使用java在Selenium中找到span元素时遇到了麻烦。
HTML看起来像:
<div class="settings-padding">
<span>Settings</span>
</div>
我尝试了以下但没有运气:
By.xpath("span[.='Settings']")
和
By.xpath("span[text()='Settings']")
和
By.cssSelector("div[class='settings-padding']"))
以及其他一些类似的尝试。你能指点我做最好的方法吗?就目前而言,我经常在eclipse中得到“无法找到元素”错误。
答案 0 :(得分:14)
您的所有xpath
看起来都不错,只有一些syntactically不正确。您在//
xpath
正确的xpath
如下: -
By by = By.xpath("//span[.='Settings']")
或者
By by = By.xpath("//span[text()='Settings']")
或者
By by = By.xpath("//div[@class='settings-padding']/span"))
或者您可以将cssSelector
用作: -
By by = By.cssSelector("div.settings-padding > span"))
使用上述By定位器中的任何一个,您可以找到如下元素: -
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement el = wait.until(presenceOfElementLocated(by));
希望它有帮助...:)
答案 1 :(得分:0)
对于下面的元素
<span class="test-button__text">
Test Text
</span>
以下解决方案对我有用
driver.find_element_by_xpath("//span[contains(@class, 'test-button__text') and text()='Test Text']")