也许这是个愚蠢的问题,但我已经花了大量的时间试图弄清楚这一点。我正在用Python中的 selenium 构建一个Scraper机器人,我只是试图点击网页上的一个按钮。网页打开并调整大小...
def initalize_browser():
driver.get("**website name**")
driver.maximize_window()
但是我不能让它点击一个特定的按钮。这是按钮的HTML代码:
<button class="mx-auto green-btn btnHref" onclick="window.location ='/medical'" onkeypress="window.location='/medical'">
Medical and Hospital Costs
</button>
这是我的密码
click_button=driver.find_element(by=By.CLASS_NAME, value="mx-auto green-btn btnHref")
click_button.click()
这是我在这个代码中得到的错误:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".mx-auto green-btn btnHref"}
我已经尝试了这么多的变化,包括:
driver.find_element_by_xpath('//button[@class="mx-auto green-btn btnHref"]').click()
出现此错误的原因:AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'
我也检查过是否有其他属性具有相同的类名,但是没有。任何帮助都将是超级感激的,谢谢!
1条答案
按热度按时间2mbi3lxu1#
find_element_by_xpath
方法现在已过时。请使用以下行:而不是:
请确保在导入中包含以下内容:
定位器
click_button=driver.find_element(by=By.CLASS_NAME, value="mx-auto green-btn btnHref")
不起作用,因为By.CLASS_NAME
只需要一个类名就可以找到一个元素,但是您给了它3个类名。html属性class
由一个元素列表组成,这些元素被空格分隔。属性
class
具有3个类名mx-auto
、green-btn
和btnHref
您不能将所有3个类都与
By.CLASS_NAME
一起使用,但可以使用By.XPATH
将它们全部使用