我正在使用用于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驱动程序正常工作?