2017-10-08 161 views
0

我可以找到我想要的元素的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

回答

-1

因此,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

0

您無法點擊所需元素,因爲它目前不可見。你應該點擊之前向下滾動到「下一步」按鈕:

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

相關問題