仅当给定的x路径存在时,我才需要执行一些代码,如果不存在,则需要寻找其他路径,然后执行一些代码。
我试图获得相同的信息,但是信息的结构发生了变化。
if driver.find_element_by_xpath("//th[contains(text(),'jakes')]/following-sibling::td/span/span"):
extractBsr = driver.find_element_by_xpath("//th[contains(text(),'jakes')]/following-sibling::td/span/span").text.split(' ')
splitBr = extractBsr[0].split("#")
splitBrComma = splitBsr[1].strip(',')
br = int(splitBsrComma)
if br < 3000:
asin.append(x)
elif driver.find_element_by_xpath("//li[@id='jakesEL']"):
print(driver.find_element_by_xpath("//li[@id='jakeEL']").text)
当我在第一个xPath不存在的页面上时,它正在评估xPath并抛出错误。
构造它的正确方法是什么。
答案 0 :(得分:3)
如果要在不进行异常处理的情况下检查元素的存在,请尝试使用find_elements...
代替find_element...
:
if driver.find_elements_by_xpath("//th[contains(text(),'jakes'))]/following-sibling::td/span/span"):
# In case of empty list you'll get False, otherwise True
elif driver.find_elements_by_xpath("//li[@id='jakesEL']"):
# The same here
您还可以尝试使用try
/ except NoSuchElementException
块处理异常