Python Selenium通过xpath点击元素

问题描述:

我可以找到我想要的元素的XPATH,但它不会让我点击它。具体来说,它会抛出一个“WebDriverException”。Python Selenium通过xpath点击元素

from selenium import webdriver 
browser=webdriver.Chrome() 
url='https://fred.stlouisfed.org/categories/32261' 
browser.get(url) 
click=browser.find_element_by_xpath("//a[@title='next page']") 
print(click.get_attribute('title')) 
click.click() 

返回以下错误: enter image description here

+0

这似乎是利用“send_keys(‘下一页’)之前的‘click.click()’正在 – Kyle

因此,XPath的在那里,但是想最初的时候,我不相信,我居然指着它“click.click()。”可能有更好的解决方案,但是现在看起来似乎正在工作。

from selenium import webdriver 
    browser=webdriver.Chrome() 
    url='https://fred.stlouisfed.org/categories/32261' 
    browser.get(url) 
    click=browser.find_element_by_xpath("//a[@title='next page']") 
    print(click.get_attribute('title')) 
    click.send_keys('next page') 
    click.click() 
+0

'click.send_keys。 ('next page')'只是一个没有办法解决问题的敏捷解决方法 – Andersson

您无法点击所需元素,因为它目前不可见。你应该点击之前向下滚动到“下一步”按钮:

from selenium import webdriver 
browser = webdriver.Chrome() 
url = 'https://fred.stlouisfed.org/categories/32261' 
browser.get(url) 
next_button = browser.find_element_by_xpath("//a[@title='next page']") 
browser.execute_script("arguments[0].scrollIntoView();", next_button) 
next_button.click() 
+0

嗨Andersson,如果你不介意这个问题,execute_script是否像send_keys一样反应?我会试着看看我是否可以合并execute_script – Kyle

+0

嗯......我不确定我是否正确理解你了。'send_keys()'打算输入字符到输入字段或者执行组合键,例如Ctrl + t等。 ..''execute_script()'允许你直接从你的Python代码执行JavaScript代码 – Andersson