![](/img/trans.png)
[英]Python Selenium Web Automation How Do You Click A Login Button
[英]How do you click an expander button in Python with Selenium?
我正在為 selenium 編寫腳本以打開網頁,然后單擊一系列按鈕。 第一個按鈕是 Expander 按鈕,如下圖所示
檢查按鈕的 HTML 代碼如下,但按鈕本身是“class="dojoxExpandoIcon dojoxExpandoIconLeft qa-button-toc"
<div class="dojoExpandoPaneInner">
<div data-dojo-attach-point="titleWrapper" class="dojoxExpandoTitle">
<div class="dojoxExpandoContainer">
<div class="dojoxExpandoIcon dojoxExpandoIconLeft qa-button-toc" data-dojo-attach-point="iconNode" data-dojo-attach-event="ondijitclick:_onIconNodeClick" tabindex="0" aria-controls="slideout"><span class="a11yNode">X</span></div>
</div>
xpath 如下:
/html[@class='dj_webkit dj_chrome dj_contentbox has-webkit has-no-quirks svg']/body[@class='claro original']/div[@id='border']/div[@id='slideout']/div[@class='dojoExpandoPaneInner']/div[@class='dojoxExpandoTitle']/div[@class='dojoxExpandoContainer']/div[@class='dojoxExpandoIcon dojoxExpandoIconLeft qa-button-toc']
為了找到這個按鈕,我一次嘗試了以下代碼。
driver.find_element_by_css_selector("div[class^='dojoxExpandoIcon']") # find expander by class name
# driver.find_element_by_css_selector("div[class^='dojoxExpandoIcon dojoxExpandoIconLeft qa-button-toc']") # find expander by class name
# driver.find_element_by_css_selector("div.dojoxExpandoContainer")
但是,它們都沒有工作,並導致錯誤,例如
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"div.dojoxExpandoIcon.dojoxExpandoIconLeft.qa-button-toc"}
我在這里做錯了什么嗎?
嘗試等到定位器可點擊:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 15)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".dojoxExpandoIcon.dojoxExpandoIconLeft.qa-button-toc")))
button = driver.find_element_by_css_selector(".dojoxExpandoIcon.dojoxExpandoIconLeft.qa-button-toc").click()
如果類的數量不穩定,則刪除正在變化的類,只保留穩定的類,例如:
.dojoxExpandoIconLeft.qa-button-toc
在這里,我剛剛刪除了其中一個課程。
在此處閱讀有關等待的更多信息https://selenium-python.readthedocs.io/waits.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.