我正在使用硒进行自动化,我想单击每个元素,然后等待,然后再单击元素。这是我的代码,但它似乎不是解决方案:<ul>def navBar(): driver=setup() navBar_List = driver.find_element_by_class_name("nav") listItem = navBar_List.find_elements_by_tag_name("li") for item in listItem : WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.TAG_NAME,"li"))) item.click()以下是HTLM代码:<ul class="nav navbar-nav"> <li tabindex="0"> <a class="h"> <div class="icon-left-navbar"> ... </div> </a> </li> <li tabindex="0"> <a class="h"> <div class="icon-left-navbar"> ... </div> </a> </li> <li tabindex="0"> <a class="h"> <div class="icon-left-navbar"> ... </div> </a> </li> </ul>
2 回答
catspeake
TA贡献1111条经验 获得超0个赞
使用 定义您的.li.find_elements
用于识别它们:。xpath//ul[@class='nav navbar-nav']//li
使用循环,您可以利用增量来等待每个 .我想它会产生如下结果:li
(xpath)[1]
(xpath)[2]
etc...
并尝试以下代码:
listItem = WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH,"//ul[@class='nav navbar-nav']//li")))
for x in range(1, len(listItem)+1):
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"(//ul[@class='nav navbar-nav']//li)[" +str(x) +"]"))).click()
添加回答
举报
0/150
提交
取消
