【发布时间】:2019-11-21 15:43:05
【问题描述】:
我目前正在尝试使用 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 时它才有效。每当我需要单击页面上的某些内容时,我都必须使用网络驱动程序等待方法。
我的问题是:
复制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)
提前致谢
【问题讨论】:
-
你能发布完整的堆栈跟踪吗?
标签: python selenium selenium-webdriver selenium-chromedriver