簡體   English   中英

Python Selenium,找個按鈕

[英]Python Selenium, find a button

我搜索了 stackoverflow 並嘗試了所有方法,但似乎沒有任何效果。 我正在使用 Python3.8 和 Selenium 3.141.0。

這是按鈕:

<button id="task-open-filters-button" class="btn btn-icon icon-filter list-filter-button sn-tooltip-basic" data-original-title="Edit Filter">
<span class="sr-only">Show / hide filter</span>
</button>

到目前為止我嘗試過的:

# Because the page is so slow, I work with try/except to get the element. 
# This works fine for a simple link, but not for this button
while True:
    try:
        # elem = browser.find_element_by_xpath('//button[@id="task-open-filters-button"]')
        # elem = browser.find_element_by_xpath('//button[@class="btn btn-icon icon-filter list-filter-button sn-tooltip-basic"]')
        # elem = browser.find_element_by_link_text("Show / hide filter")
        # elem = browser.find_element_by_xpath("//*[@id='task-open-filters-button']")[0]
        # elem = browser.find_element_by_css_selector('.btn.btn-icon.icon-filter.list-filter-button.sn-tooltip-basic')
        elem = browser.find_element_by_id("task-open-filters-button")
        break
    except NoSuchElementException:
        print("Waiting for page to load!")
        sleep(1)
elem.click()

我沒有收到另一條錯誤消息,while 循環沒有中斷。

你們知道還有什么可以嘗試的嗎? 感謝您的幫助!

當我查看您的代碼時,我看到了幾個潛在的問題。

有一個丟失的報價:

browser = webdriver.Chrome(chromedriver.exe")

另外 - 你確定chromedriver.exe是正確的路徑嗎? 也許最好提供絕對路徑。

該按鈕已被注釋掉(盡管#不是 html 注釋)。

# <button id="task-open-filters-button"
# class="btn btn-icon icon-filter list-filter-button sn-tooltip-basic"
# data-original-title="Edit Filter">
# <span class="sr-only">Show / hide filter</span></button>

這絕對是正確的語法:

elem = browser.find_element_by_id("task-open-filters-button")

所以我建議確保你的設置是正確的。 做一些簡單的事情。 加載一個 URL 並從頁面返回文本。

PS:看看這個教程

http://jonathansoma.com/lede/foundations-2018/classes/selenium/selenium-windows-install/

看起來配置更像這樣

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.nytimes.com")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM