【发布时间】:2018-03-05 10:50:12
【问题描述】:
我使用 Firefox 网络驱动程序找不到元素,它打印 0:
driver = webdriver.Firefox()
driver.get("https://www.unibet.ro/betting#filter/football")
event = driver.find_elements_by_class_name('KambiBC-event-item KambiBC-event-item--type-match')
print (len(event))
但是当我将网络驱动程序更改为 Edge:driver = webdriver.Edge() 时它会起作用,因为我还在我的路径环境中设置了边缘网络驱动程序,打印适量的网络元素
【问题讨论】:
-
请把相关的html代码放在这里,我在页面源代码中找不到任何与'KambiBC-event-item'相关的字符串。您是否提供了正确的步骤来导航到问题页面。
-
@yongi 不知道如何在不复制这些元素中的所有内容的情况下复制 html 代码,所以我制作了一个打印屏幕,
-
试试 driver.find_elements_by_css_selector('li.KambiBC-event-item')
-
我通过 className 尝试使用 selenium javascript 客户端 API,效果很好。所以我认为根本原因不是来自 find_elements_by_class_name() ,您是否尝试在调用 driver.find_elements_by_class_name() 之前添加一些睡眠,我注意到您的网站加载有点慢。
-
@young 实际上代码在一个循环中,所以如果它第一次没有找到任何东西,第二次,我从 mozzila 网页上读到的是我需要 selenium 3.5 及更高版本和 firefox版本 55 及更高版本,我的 selenium 版本是 3.4.3,但是当我尝试升级它时,我收到一条消息说我是最新的:
C:\Users\dariu>pip install -U selenium Requirement already up-to-date: selenium in c:\users\dariu\appdata\local\programs\python\python36-32\lib\site-packages
标签: python selenium firefox selenium-webdriver classname