Selenium调用类元素

2024-04-25 15:26:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用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')


Tags: name网页bymoredriverselenium公司col
2条回答

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

selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Compound class names not permitted

你应该用另一种方法。如果要基于多个类进行选择,我建议对driver对象使用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 selenium的转到页面。以下是所有可用的方法->;http://selenium-python.readthedocs.io/locating-elements.html

使用find \u by \u class \u name()不能处理空格,因为它会认为是它的复合类,相反,我使用了csselector,它现在就像一个符咒。driver.find_elements_by_css_selector('.c-events\uu item.c-events\uu item\u col')

相关问题 更多 >

    热门问题