【问题标题】: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

【问题讨论】:

  • 请张贴html。
  • 请添加相关代码。

标签: 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 类是您要查找的元素的唯一祖先。

    【讨论】:

    • 使用此选择器找不到元素
    • @EvaldasB 编辑了我的答案
    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多