我对此代码有疑问:
var = 1
while var :
if(browser.find_element_by_xpath("//p[contains(text(),'sometext')]")):
var = 1
browser.refresh()
time.sleep(2)
else:
mail = WebDriverWait(browser, 20).until(
EC.presence_of_element_located((By.XPATH, "//input[@id='email_l']")));
mail.send_keys(mailStr)
所以问题出在if里面,实际上在网站上没有文字的某些文字,但我想继续使用else条件。 错误如下:
Message: no such element: Unable to locate element:
{"method":"xpath","selector":"//p[contains(text(),'sometext')]"}
然后停止。 这是我的错误? 谢谢
答案 0 :(得分:0)
此错误消息......
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//p[contains(text(),'sometext')]"}
...暗示定位器策略未识别HTML DOM中的任何唯一元素。
根据您的问题,在网页中没有任何元素存在,文字为 sometext ,您希望继续使用else条件。因此,您需要将if{}
块包围在try-catch {}
块中,并在else{}
块内的catch{}
块内传输代码块,如下所示:
var = 1
while var :
try:
if(browser.find_element_by_xpath("//p[contains(text(),'sometext')]")):
var = 1
browser.refresh()
time.sleep(2)
except NoSuchElementException:
mail = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, "//input[@id='email_l']")));
mail.send_keys(mailStr)