获取selenium.com.mon.exceptions.TimeoutException,即使使用WebDriver



即使添加了WebDriver的等待时间,我也会遇到TimeoutException。我正在使用Excel电子表格生成的Pandas数据帧中的数据逐个搜索SKU。

我的代码永远不会到达它发送密钥的行。

search_bar = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "(//div[contains(@class='searchbox-inner-searchtext')])")))
search_bar.send_keys(sku)
search_bar.send_keys(Keys.RETURN)
try:
cross_click = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "(//*[@class='MuiSvgIcon-root'])[2]")))
cross_click.click()
except Exception as e:
print(e)
print('No Product Found.')
pass

我能够使用FULL XPATH检查选项以及您提供的类名找到它。我相信还有其他办法;除非被要求以非常具体的方式测试访问权限,否则我通常会选择最简单的方法。

search_bar = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "/html/body/header/div[2]/div[1]/div/div[2]/div[2]/input")))
search_bar = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, "searchbox-inner-searchtext")))

contains()具有不同的语法,该值必须与属性用逗号分隔。

XPATH的正确语法为//div[contains(@class, 'searchbox-inner-searchtext')],或CSS Selector的缩写为div[class*='searchbox-inner-searchtext']

相关内容

最新更新