繁体   English   中英

如果使用 Python/Selenium 找不到元素,如何在这种情况下更快地执行除代码块?

[英]How to execute except code block faster in this case if elements is not found using Python/Selenium?

我在下面有这段代码来从页面获取评论。 有时没有注释,因此除了代码触发器。 在执行异常代码之前,它会尝试 try 代码块 5-10 秒。 有没有更快的方法来检查是否找到了元素? 最好:如果未找到元素,则直接执行异常代码。

try: 
        comments = WebDriverWait(driver, 20).until(
            EC.presence_of_all_elements_located((By.XPATH, relativeXpathToReportComments)))
        # some code to be executed if the elements is found

except:
        print("could not find/get comments on comment page")

如果您想立即检查元素是否存在,您可以简单地使用以下内容:

if driver.find_elements_by_xpath('relativeXpathToReportComments'):
    # some code to be executed if the elements is found
else:
    print("could not find/get comments on comment page")

driver.find_elements返回与传递的定位器匹配的元素列表。
如果有这样的元素,它会返回找到的元素的非空列表。 否则,它会返回一个在 Python 中识别为False的空列表。
find_elementsfind_element正在寻找直到由ImplicitWait定义的超时(默认为 0)的元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM