使用selenium Python循环浏览webelements
我目前正在尝试使用Selenium和python自动化一个过程,但我遇到了一个障碍。该列表是树下列表的一部分。我用以下xpath标识了树的底部使用selenium Python循环浏览webelements,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,我目前正在尝试使用Selenium和python自动化一个过程,但我遇到了一个障碍。该列表是树下列表的一部分。我用以下xpath标识了树的底部 item=driver。通过xpath(“//*[@id='filter']/ul/li[1]///ul//li”)查找元素 items=item。通过标签名称(“li”)查找元素 我试图循环浏览“项目”部分,但需要并单击带有“输入”标记的任何内容 对于k in项目: WebDriverWait(驱动程序,10)。直到(EC.元素可点击((k.find_
item=driver。通过xpath(“//*[@id='filter']/ul/li[1]///ul//li”)查找元素
items=item。通过标签名称(“li”)查找元素
我试图循环浏览“项目”部分,但需要并单击带有“输入”标记的任何内容
对于k in项目:
WebDriverWait(驱动程序,10)。直到(EC.元素可点击((k.find_元素(By.TAG_NAME,“input”))))。点击()
执行上述操作时,我得到以下错误:
TypeError:在*之后的find_element()参数必须是iterable,而不是WebElement
出于某些原因,如果我使用下面这样的方法,则.click()将不起作用。
k.通过标记名称(“输入”)查找元素。单击()
它只有在我使用webdriverwait时才起作用。我必须在任何需要单击页面上的内容时使用web驱动程序等待方法
我的问题是:
复制items=item.find\u elements\u by\u tag\u name(“li”)
对于WebDriverWait(driver,10)。直到(EC.element\u可单击((k.find\u element(By.TAG\u NAME,“input”))))。单击()
i、 e如何使用基本路径并使用私有方法find\u元素(By.TAG\u NAME)
提前感谢我已经找到了一个解决办法,让Selenium做我需要的事情。
我不得不调用javascript执行,所以我没有尝试
WebDriverWait(driver,10)。直到(EC.element\u to\u be\u clickable((k.find\u element(By.TAG\u NAME,“input”)))))。单击()
工作,我刚刚使用了
driver.execute_script(“参数[0]。单击();”,k.find_element_by_tag_name(“输入”))
它所做的正是我需要它做的。你能发布完整的堆栈跟踪吗?