我创建了一些代码(工作正常),它在网页上执行了几个动作的循环(使用selenium)。但是,我想在动作的中间插入一个验证点,如果不是,则循环应该再次开始操作(转到下一行)。
所以if validation != "Select All (1)"
循环必须重启。请注意,我只知道在任务中间验证是否正确,因为我进行了搜索,基本上如果搜索成功,我会得到文本Select All (1)
,如果不是,我会得到不同的文本
我的代码低于(原始),之后是我尝试进行验证 现在发生的是,在我尝试更改代码时,代码工作完全相同。所以我不确定是什么错误。
旧代码:
for row in rows:
browser.get('https://wwww.test/')
time.sleep(2)
browser.find_element_by_xpath("//*[@id='agent_list_filter_id_2']").clear()
browser.find_element_by_xpath("//*[@id='agent_list_filter_id_2']").send_keys(row)
time.sleep(2)
browser.find_element_by_xpath("//*[@id='content-column']/div[4]/form/div[1]/span/span[1]").click()
time.sleep(2)
browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").click()
time.sleep(2)
browser.find_element_by_xpath("//*[@id='action-delete']/span/span").click()
time.sleep(2)
browser.find_element_by_xpath("//*[@id='btn_save']").click()
我的尝试:
validation = ""
while validation != "Select All (1)":
for row in rows:
browser.get('https://wwww.test/')
time.sleep(2)
browser.find_element_by_xpath("//*[@id='agent_list_filter_id_2']").clear()
browser.find_element_by_xpath("//*[@id='agent_list_filter_id_2']").send_keys(row)
time.sleep(2)
browser.find_element_by_xpath("//*[@id='content-column']/div[4]/form/div[1]/span/span[1]").click()
time.sleep(2)
# here should be the validation, if not true, the loop should restart with other row (result not found)
validation = browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").text
# validatiom above this line
time.sleep(2)
browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").click()
time.sleep(2)
browser.find_element_by_xpath("//*[@id='action-delete']/span/span").click()
time.sleep(2)
browser.find_element_by_xpath("//*[@id='btn_save']").click()
答案 0 :(得分:0)
如果验证到false
,您可以在验证线后添加continue
:
validation = browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").text
if validation != "Select All (1)":
continue
这将continue
到for
循环的下一次迭代,并跳过其后的其余语句。