【问题标题】:How to extract text from a web element using Selenium and C#?如何使用 Selenium 和 C# 从 Web 元素中提取文本?
【发布时间】:2019-02-16 20:23:30
【问题描述】:

我想从这段 Html 代码中获取标题 (9,804,541)。

<p class="ring_SecondaryValue" style="color: rgb(119, 119, 119);
 font-size: 16px; margin: 0px; overflow: hidden; text-align: center;
 text-overflow: ellipsis; vertical-align: middle; white-space:
 nowrap;"><div class="ring_secondaryMeasureSum"
 title="9,804,541">9,805K</div></p>

我试过这段代码:

string left_value =driver.FindElement(By.ClassName("ring_secondaryMeasureSum")).GetAttribute("title");

【问题讨论】:

  • 可能 ring_secondaryMeasureSum 被多次使用,所以使用 xpath 定位元素
  • 是的,但是在 chrome 开发者选项中获得相同的 XPath
  • 我也不能添加第二个条件 (@title='9,804,541) bcoz,它是动态的
  • 我更新了asnwer
  • 还是不行

标签: c# selenium xpath css-selectors webdriver


【解决方案1】:

根据您共享的 HTML 来提取标题 9,804,541,您可以使用以下任一解决方案:

  • CssSelector:

    string left_value = driver.FindElement(By.CssSelector("p.ring_SecondaryValue > div.ring_secondaryMeasureSum")).GetAttribute("title");
    
  • XPath:

    string left_value = driver.FindElement(By.XPath("//p[@class='ring_SecondaryValue']/div[@class='ring_secondaryMeasureSum']")).GetAttribute("title");
    

【讨论】:

    【解决方案2】:

    你可以这样使用

    在java中是这样的

      WebElement title = driver.findElement(By.xpath("//div[contains(@class,'ring_secondaryMeasureSum')][contains(text(),'')]"));
                System.out.println(title.getAttribute("title"));
    

    我也试过c Sharp,你可以检查语法错误,因为我不擅长c Sharp

    IWebElement title = driver.FindElement((By.Xpath("//div[contains(@class,'ring_secondaryMeasureSum')][contains(text(),'')]"));
    
    string titleText= title.GetAttribute("title");
    

    【讨论】:

    • 有什么问题?
    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2020-11-03
    • 2019-09-03
    • 2021-12-11
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多