在Python 3.4中使用Selenium WebDriver。
我正在编写一个scraper,并使用以下方法在XPath中检索相对于非root祖先的元素:
def grab_and_clean_selenium(target_path, ancestor_element):
try:
target_element = ancestor_element.find_element_by_xpath(target_path)
except Exception as e:
pass
如果找到元素,这可以按预期工作(并且非常快)。但是,如果找不到该元素(我正在搜索相当数量的可选元素),那么处理它似乎需要相当多的时间。
例如,前10个元素都存在于页面内,并且总共在0.5秒内被刮掉。找不到 的每个元素大约需要1秒钟,这会增加刮刀按指数运行的总时间。
为什么搜索未找到的元素代价太高,有没有办法减少这段时间?
我在isElementPresent is very slow in case if element does not exist.
看到了非常相似的问题但是,接受的解决方案是将隐式等待设置为0,设置后没有影响:
driver.implicitly_wait(0)
这是有道理的,因为默认情况下隐式等待已经为0。
有什么建议吗?
编辑:有问题的XPath是: