在循环

时间:2016-02-22 14:45:47

标签: python validation

我创建了一些代码(工作正常),它在网页上执行了几个动作的循环(使用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()

1 个答案:

答案 0 :(得分:0)

如果验证到false,您可以在验证线后添加continue

validation = browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").text
if validation != "Select All (1)":
    continue

这将continuefor循环的下一次迭代,并跳过其后的其余语句。