硒调用类元素不起作用

时间:2018-08-08 21:30:24

标签: python python-3.x selenium

我正在尝试使用Selenium的Chromedriver在足球庄家网页上按下按钮。我的问题是,当我调用Selenium的driver.find_elements_by_class_name('c-events__item c-events__item_col')时什么也没发生。

已修复:

我试图从以下位置获取信息:类名'c-events__more c-events__more_bets js-showMoreBets'

使用find_by_class_name()无法处理空格,因为它会认为它的复合类,所以我使用了csselector,它现在就像一种魅力。 driver.find_elements_by_css_selector('.c-events__item.c-events__item_col')

2 个答案:

答案 0 :(得分:0)

它告诉您在find_elements_by_class_name中不能使用多个类。您一次只能使用一堂课。由于该方法返回一个硒对象,因此您可以将方法链接三次,但是更好的方法是仅使用css选择器方法。

  

selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:不允许使用复合类名称

您应该使用其他方法。如果要基于多个类进行选择,建议在驱动程序对象上使用find_elements_by_css_selector方法。类名前面的点构成所谓的类选择器。您可以在此处了解有关选择器的更多信息:https://www.w3schools.com/cssref/css_selectors.asp

driver.find_elements_by_css_selector('.c-events__more .c-events__more_bets .js-showMoreBets')

由于您遇到了定位标记,因此您可能还希望将a添加到选择器中。例如

driver.find_elements_by_css_selector('.c-events__more .c-events__more_bets .js-showMoreBets a')

这始终是我使用python硒的转到页面。这是所有可用的方法-> http://selenium-python.readthedocs.io/locating-elements.html

答案 1 :(得分:0)

使用find_by_class_name()无法处理空格,因为它会认为它的复合类,相反,我使用了csselector,它现在就像一个魅力。 driver.find_elements_by_css_selector('。c-events__item.c-events__item_col')