如何解决如何检查for循环中的下一个迭代?
我正在尝试抓取JS网站。我使用了硒,一切正常,直到出现此错误。该网站有一个表格,我正在处理。
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/table/tbody/tr[2]/td[2]/table/tbody/tr[26]/td[4]"}
(Session info: chrome=84.0.4147.125)
在XPath中 第25次和第27次迭代有4. td
/html/body/table/tbody/tr[2]/td[2]/table/tbody/tr[26]/td[4]
但是26号没有第四名。
我尝试通过使用“通过循环”来解决此问题:
if(bool(driver.find_element_by_xpath("/html/body/table/tbody/tr[2]/td[2]/table/tbody/tr[26]/td[***+str(j)+***] ").is_enabled)):pass
但是,一旦硒发现了路径,它就会给出错误而无需检查。我了解“ is_enable” 方法无效。
问题是:如何在不中断Selenium的情况下传递迭代?
解决方法
try:
driver.find_element_by_xpath("./html/body/table/tbody/tr[2]/td["+str(j)+"]/table/tbody/tr["+str(i)+"]/td[4]")
except NoSuchElementException:
continue
如果XPath中没有元素,则返回null。有用。谢谢@JaSon
,您尝试过类似的方法吗? (您可以通过for
循环轻松启动它)
if driver.find_element_by_xpath("/html/body/table/tbody/tr[2]/td[2]/table/tbody/tr[26]/td[1(Can't boosted with for loop):
print("Found object")
else:
print("Can't find object")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。