[英]Selenium Webdriver Python: I can't seem to locate all the text in a label tag
<label class="control-label">
Rental Charge:
<span class="required" ng-show="vm.rentalInfo.reason">* (Min of $30.00)</span>
</label>
我用了
driver.find_element_by_xpath("//label[@ class = 'control-label']/span[@class = 'required']").text
而我返回的唯一text
是asterisk *
, (Min of $30.00)
不顯示(Min of $30.00)
。 有人知道為什么是這樣嗎?
我猜這是一個時間問題。 等待 “ $”以預期的text_to_be_present_in_element
預期條件顯式出現在元素中:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
elm = wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, 'span[ng-show*="rentalInfo.reason"]'), "$"))
print(elm.text)
很難說這是什么問題,這不是時間問題。 您應該嘗試使用get_attribute()
如下所示,可能會有所幫助:-
driver.find_element_by_css_selector("span.required[ng-show*='rentalInfo.reason']").get_attribute("textContent")
要么
driver.find_element_by_css_selector("span.required[ng-show*='rentalInfo.reason']").get_attribute("innerHTML")
我試圖像@alecxe建議的那樣有點具體。 因此,我使用了xpath driver.find_element_by_xpath(“ // span [@ ng-show ='vm.rentalInfo.reason']”)。text ,它給了我整個文本“ *( 最少 $ 30.00)”。 感謝Saurabh Gaur和alecxe的回復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.