繁体   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