以下是结构:
<div class="col-sm-12 text-center marginTopMini infoMessage showInfo" ng-class="{ showInfo : servicesCtrl.texts.addressInfo != '' && servicesCtrl.show.receipt === false }">
<div class="infoMessageInner">
<p>
<span ng-bind-html="servicesCtrl.texts.addressInfo" class="ng-binding">
Tyvärr kan vi inte erbjuda fiber eller tjänster på denna adress just nu. Vänligen kontrollera att adressen är rättstavad och enligt formatet <b>”Exempelgatan 17A, Ort”</b>.
<br><br>Vi vill ge alla möjlighet till fiberanslutning. Gör en intresseanmälan för din adress så ökar chansen att vi kommer kunna erbjuda fiber även i ditt område.
</span>
<span ng-show="servicesCtrl.address.status === 'Orderable'" class="ng-hide">
<a ng-click="servicesCtrl.preScrollToVerticalPosition('checkout', 'checkout', '/checkoutFiber', undefined, 'Checkout fiber')">
Till fiberbeställningen</a>
</span>
<span ng-show="servicesCtrl.address.status === 'Inquireable'" class="">
<a ng-click="servicesCtrl.preScrollToVerticalPosition('checkout', 'checkout', '/inquiry', undefined, 'Inquiry')">Till intresseanmälan</a>
</span>
</p>
</div>
</div>
如何使用硒**[Python]**选择以下段落文本。我已经尝试过这种方法,请看一下(使用python做(:
driver.find_elements_by_css_selector(".showInfo.infoMessageInner")
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'.showInfo.infoMessageInner')))
data = driver.find_elements_by_css_selector(".showInfo.infoMessageInner")
请向我建议有效的解决方案,如何检索上述段落标签(p(中的以下文本。谢谢
你快到了。你只需要识别<p>
标签并诱导WebDriverWait元素可见,最后使用text
检索文本,如下所示:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
#other lines of code
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.infoMessageInner > p")))
print(element.text)
提取的文本将是:
Tyvärr kan vi inte erbjuda fiber eller tjänster på denna adress just nu. Vänligen kontrollera att adressen är rättstavad och enligt formatet ”Exempelgatan 17A, Ort”.
Vi vill ge alla möjlighet till fiberanslutning. Gör en intresseanmälan för din adress så ökar chansen att vi kommer kunna erbjuda fiber även i ditt område.
Till fiberbeställningen
Till intresseanmälan
您的定位器有点偏离...
data = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'div.infoMessageInner > p')))
print(data)
您需要向下钻取更多,然后获取文本或 innerHTML,如下所示:
text = driver.find_element_by_css_selector("div[@class='infoMessageInner'] span.ng-binding")).get_text()
我没有验证此代码,但它应该让您走上正轨。