Selenium Webdriver显式等待不起作用,即使该元素存在并启用

时间:2018-11-21 21:06:03

标签: python selenium selenium-webdriver selenium-chromedriver webdriverwait

我正在使用用于chrome的硒网络驱动程序来运行自动化测试。 以下是Chrome和Selenium Web驱动程序的规范 Chrome版本70.0.3538.77(官方内部版本)(64位) 硒版本:3.6.0

最初,我使用time.sleep()进行自动化,但是我想使用显式等待,因为每个脚本的睡眠时间各不相同,这会导致整个自动化套件出现问题。

我尝试了以下不同的显式等待实体,但在所有情况下测试均失败

WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[1]/div/ui-view/main/side-nav/ll-side-nav/ul/ll-side-nav-item[5]/li/a/i [1]")))
WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/ui-view/main/side-nav/ll-side-nav/ul/ll-side-nav-item[5]/li/a/i [1]")))
WebDriverWait(browser, 30).until(EC.element_located_to_be_selected((By.XPATH, "/html/body/div[1]/div/ui-view/main/side-nav/ll-side-nav/ul/ll-side-nav-item[5]/li/a/i [1]")))

我尝试了添加睡眠时间的旧方法,并添加了time.sleep(10),它遍历了整个代码。因此,该元素存在但仍不可点击。

我还检查了chrome日志文件。我在哪里发现消息中的特定元素IsElementEnabled true。我对chrome的选项进行了以下更改以获取日志信息:

caps = DesiredCapabilities.CHROME
caps['loggingPrefs'] = {'performance': 'ALL'}
options = webdriver.ChromeOptions()   
browser = webdriver.Chrome(executable_path=r"C:\\Program 

Files(x86)\\Google\\Chrome\\chromedriver",chrome_options=options,desired_capabilities=caps,service_args=["--verbose", "--log-path=G:\My Drive\control\logs\chromedriver2.log"])

尽管如此,它还是不可点击的。我看到过类似的票证,但在许多情况下该元素不存在。就我而言,如果我提供time.sleep()而不是明确等待,我也可以单击该元素。

谁能帮我解决我的问题?或其他建议使Selenium Web驱动程序正常工作?

0 个答案:

没有答案