我有脚本选择按钮如下
driver.find_element_by_id("Product").click()
driver.find_element_by_id("id1").click()
driver.find_element_by_id("id1").click()
driver.find_element_by_id("id2").click()
driver.find_element_by_id("id2").click()
driver.find_element_by_id("id3").click()
driver.find_element_by_id("id3").click()
driver.find_element_by_id("id4").click()
driver.find_element_by_id("id4").click()
driver.find_element_by_id("id5").click()
driver.find_element_by_id("id5").click()
driver.find_element_by_id("id6").click()
driver.find_element_by_id("id6").click()
driver.find_element_by_id("id7").click()
driver.find_element_by_id("id7").click()
所以我在这里选择按钮产品,然后它有多个项目。 每个代码将选择产品并取消选择
如何循环此id选择而不是编写长脚本 就像一旦选择了产品按钮,然后循环选择产品中的所有项目
@COLDSPEED的评论为我们指出了正确的方向,@VaibhavMule的答案近乎完美,但他们都没有从
Selenium
的角度考虑click()
的影响。在单击()
click()将通过
selenium.webdriver.remote.webelement
界面与文档交互。在因此click()方法调用将执行新鲜度检查,以确保元素引用仍然有效。这实际上决定了元素是否仍然附加到DOM。如果这个测试失败,那么抛出一个
StaleElementReferenceException
,并且以后对这个实例的所有调用都将失败。因此,在调用每个click()
之前,我们必须将expected_conditions
子句设置为element_to_be_clickable
来归纳WebDriverWait
。在因此,对于},可以使用以下代码块:
loop this id selections
到{这可以减少您的代码,并且您可以使用所需的适当范围。在
相关问题 更多 >
编程相关推荐