【问题标题】:Selenium doesn't display textSelenium 不显示文本
【发布时间】:2017-04-24 02:55:22
【问题描述】:
我得到的不是文本,而是这样的:[ing]应该是:Premium green tea。
Browser.FindElement(By.CssSelector(".prod-ing")).Text;
HTML:
<p class="prod-ing">Premium green tea</p>
在浏览器和 html 文件中的文本都正确显示。
textContent
outerText
innerText
innerHTML等属性br>
给出相同的结果。
Webpage
【问题讨论】:
标签:
javascript
c#
html
selenium
selenium-chromedriver
【解决方案1】:
始终在浏览器开发控制台中测试您的选择器。对 CSS 选择器使用 $$(),对 XPath 使用 $x()。这将为您节省大量时间和挫败感。在这种情况下,如果您执行$$(".prod-ing").length,您将看到有两个元素与此定位器匹配。
您可以替换多个定位器。我发现的一对夫妇的工作是
"section.product_detail_copy p.prod-ing"
"section.product-description-template-target p.prod-ing"
我总是在类名中包含标签名,以便更加具体。这样,如果将来页面发生更改,您将降低匹配具有相同类名的其他标签的机会。
【解决方案2】:
你有 2 个 prod-ing 类,第一个是 [ing] 文本。试试
Browser.FindElement(By.CssSelector(".product_detail_copy .prod-ing")).Text;
product_detail_copy 类是您要查找的元素的唯一祖先。