使用Selenium Python循环浏览webelements



我目前正在尝试使用Selenium和python自动化一个过程,但我遇到了障碍。该列表是树下列表的一部分。我已经使用以下 xpath 确定了树的基础

item = driver.find_element_by_xpath("//*[@id='filter']/ul/li[1]//ul//li")

items = item.find_elements_by_tag_name("li")

我正在尝试循环浏览"项目"部分,但需要并单击带有"输入"标签的任何内容

for k in items: WebDriverWait(driver, 10).until(EC.element_to_be_clickable((k.find_element(By.TAG_NAME, "input")))).click()

执行上述操作时,出现以下错误: "TypeError: * 后面的 find_element(( 参数必须是可迭代的,而不是 WebElement">

出于某种原因,如果我使用如下所示的内容,.click(( 将无法工作。 k.find_element_by_tag_name("input").click() 它仅在我使用WebDriverwait时才有效。每当我需要单击页面上的某些内容时,我都必须使用 Web 驱动程序等待方法。

我的问题是: 复制items = item.find_elements_by_tag_name("li")的语法是什么 对于WebDriverWait(driver, 10).until(EC.element_to_be_clickable((k.find_element(By.TAG_NAME, "input")))).click() 即如何使用基本路径并附加到使用私有方法find_elements(By.TAG_NAME)

提前致谢

我已经设法找到解决方法并让Selenium做我需要的事情。 我不得不调用javascript执行,所以而不是试图获得 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((k.find_element(By.TAG_NAME, "input")))).click()工作,我只是用 driver.execute_script("arguments[0].click();", k.find_element_by_tag_name("input"))

它完全按照我需要它做的事情。

相关内容

  • 没有找到相关文章

最新更新