簡體   English   中英

Selenium Webdriver Python:我似乎無法在標簽標簽中找到所有文本

[英]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 

而我返回的唯一textasterisk *(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*="rentalIn‌​fo.reason"]'), "$"))
print(elm.text)

很難說這是什么問題,這不是時間問題。 您應該嘗試使用get_att‌​ribute()如下所示,可能會有所幫助:-

 driver.find_element_by_css_selector("span.required[ng-show*='rentalIn‌​fo.reason']").get_att‌​ribute("textContent"‌​) 

要么

driver.find_element_by_css_selector("span.required[ng-show*='rentalIn‌​fo.reason']").get_att‌​ribute("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.

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