有没有办法测试元素是否存在?任何findElement方法都会以异常结束,但这不是我想要的,因为它可能是一个元素不存在而且没关系,这不是测试的失败,因此异常不能成为解决方案.
我发现这篇文章:Selenium c#Webdriver:等到元素存在 但是这是C#而我不是很擅长.任何人都可以将代码翻译成Java吗?我很抱歉,我在Eclipse中尝试过但是我没有把它直接用到Java代码中.
这是代码:
public static class WebDriverExtensions{
public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){
if (timeoutInSeconds > 0){
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
return wait.Until(drv => drv.FindElement(by));
}
return driver.FindElement(by);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试让 Selenium 与 Chrome 一起使用,但我不断遇到此错误消息(以及其他类似的错误消息):
AttributeError:“WebDriver”对象没有属性“find_element_by_name”
find_element_by_id()、find_element_by_class()等也会出现同样的问题。
我也打不通电话send_keys()。
我只是运行ChromeDriver - WebDriver for Chrome - Getting Started中提供的测试代码。
import time
from selenium import webdriver
driver = webdriver.Chrome("C:/Program Files/Chrome Driver/chromedriver.exe") # Path to where I installed the web driver
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
Run Code Online (Sandbox Code Playgroud)
我使用的是 Google Chrome 版本 103.0.5060.53 并从Downloads下载了 ChromeDriver 103.0.5060.53 。
运行代码时,Chrome 打开并导航到 google.com,但它收到以下输出: …
python selenium google-chrome selenium-chromedriver selenium-webdriver
我有以下三个按钮,我无法弄清楚如何抓取它们内部的文本(例如异常值).我试过browser.find_element_by_link_text("Outliers").click(),但得到"无法找到元素"错误.我该怎么做?
我尝试在 Chrome 中使用 Selenium,但无法在页面上找到元素。我尝试使用链接文本、XPath 和完整 XPath,但只有一个错误,并且没有单击该元素。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver= webdriver.Chrome()
driver.get("https://www.youtube.com/")
print(driver.title)
driver.find_element_by_xpath("//*[@id='search']").click()
Run Code Online (Sandbox Code Playgroud)
输出:
UserWarning: find_element_by_* commands are deprecated. Please use find_element() instead
warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
Run Code Online (Sandbox Code Playgroud)
我使用的是 ChromeDriver 81.0.4044.69 和浏览器版本 81.0.4044.113。