如何使用Selenium和C#从Web元素提取文本?

时间:2018-09-12 08:43:42

标签: c# selenium xpath css-selectors webdriver

我想从这段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");

2 个答案:

答案 0 :(得分:0)

您可以这样使用

在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");

答案 1 :(得分:0)

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

  • 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");