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