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

在这种情况下,如果使用Python/Selenium找不到元素,如何更快地执行代码块?,python,selenium,Python,Selenium,我有下面的代码从一个页面获取评论。有时没有注释,因此代码触发器除外。在执行except代码之前,它会尝试try代码块5-10秒。有没有更快的方法来检查元素是否被找到?最好:如果找不到元素,则直接执行EXPECT代码 try: comments = WebDriverWait(driver, 20).until( EC.presence_of_all_elements_located((By.XPATH, relativeXpathToReportComm

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

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_element
find_element
正在查找由
ImplicitWait
定义的超时之前的元素,默认值为0。

您知道20是什么意思吗?还有其他的驱动程序配置,大概有几次?我觉得我们在这里做不了什么,如果元素不存在,您必须等待5-10秒
find_元素
将从
ImplicitWait
中花费完全相同的时间change@cruisepandey
ImplicitWait
的默认值为0,您假设OP已将其设置为0?您不需要将其设置为任何值。在您更改它之前,它是0。所以,既然他没有提到-是的。不建议使用
隐式等待
,直到您知道它在做什么以及它是如何工作的……哪里提到不建议使用它?这是硒的一个著名的例子。在实际方面,您的解决方案不会像预期的那样在节省时间方面做出任何时间更改