我目前正在尝试使用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)
预先感谢
答案 0 :(得分:0)
我设法找到了解决方法,并让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"))
它完全按照我的需要做。