我是 Selenium 和 Python 的新手。我想瀏覽一個網站,找到一個元素并將其列印(或將其存盤在 csv 檔案中)。
Python版本:3.10;Selenium Webdriver:火狐;IDE:PyCharm 2021.3.2(CE);作業系統:Fedora 35 虛擬機
到目前為止,我能夠導航到生成表格的相應頁面。當我通過 CSS 選擇器找到元素并嘗試列印它時,輸出不會列印我在螢屏上看到的文本“$10.50”。事實上,它不列印任何東西。
我要列印的元素的 HTML 代碼:
<input id="b8-b36-Input_RemainAmtYr1" class="form-control OSFillParent" data-input="" disabled="" type="text" style="margin-top: 5px;" value="$10.50">
event
我的相關代碼:
RemainDue = driver.find_element(By.CSS_SELECTOR, '#b8-b36-Input_RemainAmtYr1')
print ('Remaining Due:', RemainDue.text)
我希望輸出為“$10.50”,這是我在螢屏和 HTML 中看到的。相反,我得到以下資訊:
剩余到期日:
在“Remaining Due:”之后沒有列印任何內容我認為問題是“$10.50”可能是由某種 javascript 生成的,但我可以在上面的 HTML 代碼中看到我想列印的文本“$10.50”。我究竟做錯了什么?
uj5u.com熱心網友回復:
要列印value屬性的值,即$10.50,您可以使用以下任一定位器策略:
使用
css_selector:print(driver.find_element_by_css_selector("input.form-control.OSFillParent[id$='Input_RemainAmtYr1']").get_attribute("value"))使用
xpath:print(driver.find_element_by_xpath("//input[@class='form-control OSFillParent' and contains(@id, 'Input_RemainAmtYr1')]").get_attribute("value"))
理想情況下,您需要為visibility_of_element_located()引入WebDriverWait,您可以使用以下任一定位器策略:
使用
CSS_SELECTOR:print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input.form-control.OSFillParent[id$='Input_RemainAmtYr1']"))).get_attribute("value"))使用
XPATH:print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//input[@class='form-control OSFillParent' and contains(@id, 'Input_RemainAmtYr1')]"))).get_attribute("value"))注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
您可以在Python Selenium中找到相關討論- 獲取 href 值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/440969.html
標籤:Python 硒 路径 css 选择器 网络驱动程序等待
上一篇:將分頁器指示器影片化為按鈕
