仅当循环由于while而重新启动时才插入新操作

时间:2016-02-22 16:52:19

标签: python

我想在验证变量不是"选择全部(1)")时添加新的行动。

例如:如果条件验证为真"选择全部(1)"我希望代码能够正常运行,最后只是填充并且现在正在执行。但是当验证不是"选择全部(1)"我想在循环开始之前添加一个新命令(现在从头开始,但没有添加特定的动作);缺少的命令是:

browser.find_element_by_xpath("//*[@id='content-column']/div[4]/form/div[1]/spa‌​n/span[1]").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)
        # validation starts here
        validation = browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").text
        if validation != "Select All (1)": # or anything that is a falsy validation
            continue
        # validation finish here
        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)

IIUC你只想添加这一行:

browser.find_element_by_xpath("//*[@id='content-column']/div[4]/form/div[1]/spa‌​n/span[1]").click()

那么为什么不这样做?

# validation starts here
validation = browser.find_element_by_xpath("//*[@id='action-select-all']/span/span").text
if validation != "Select All (1)": # or anything that is a falsy validation
    browser.find_element_by_xpath("//*[@id='content-column']/div[4]/form/div[1]/spa‌​n/span[1]").click()
    continue
# validation finish here

然后,您想要结束的命令将在循环重新启动之前执行。

如果这有助于你或者我误解了,请告诉我。