我正在尝试使用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')
答案 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')