我创建了一个 while 循环,它看起来应该是 chrome 页面的标题,如果它们都包含字符串 404,则页面刷新并且循环再次开始。如果任何页面不包含字符串 404,则 while 循环条件为假,我的代码将继续。 但是,当我知道条件为真并且所有网页标题都包含字符串 404 时,正在传递 while 循环
# Open first window and Maximize Window
driver.get(web_link_00)
driver.maximize_window()
web_title_00 = driver.title
print('First Window: ' + web_title_00)
# Open a new window, Switch to the new window
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get(web_link_15)
web_title_15 = driver.title
print('Second Window: ' + web_title_15)
# Open a new window, Switch to the new window
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[2])
driver.get(web_link_20)
web_title_20 = driver.title
print('Third Window: ' + web_title_20)
# Checking if listing is live with While Loop
while '404' in (web_title_00, web_title_15, web_title_20):
print("listing Not Live Yet")
driver.switch_to.window(driver.window_handles[0])
driver.refresh()
driver.switch_to.window(driver.window_handles[1])
driver.refresh()
driver.switch_to.window(driver.window_handles[2])
driver.refresh()
注意: 当我更改 while 循环以检查一个条件时,它会正确执行下面的示例 但是现在它只是检查一个条件而不是 3
# Checking if listing is live with While Loop
# Before: while '404' in (web_title_00, web_title_15, web_title_20):
while '404' in web_title_00:
print("listing Not Live Yet")
driver.switch_to.window(driver.window_handles[0])
driver.refresh()
driver.switch_to.window(driver.window_handles[1])
driver.refresh()
driver.switch_to.window(driver.window_handles[2])
driver.refresh()
答案 0 :(得分:0)
此条件 if '404' in (.., .., ..):
用于完全匹配,例如
a = "good title"
b = "404" # change to "bad 404" and it will not work
if '404' in (a,b):
print('error found")
匹配包含需要循环一一检查,或者使用any()
进行列表推导
while any('404' in t for t in [web_title_00, web_title_15, web_title_20]):
print("listing Not Live Yet")