提问者:小点点

Selenium C#:如何在<br>标签后获取文本


我见过其他帖子关于获取br标签后的文本,但没有一个帮助我从我的网页上获取文本。

这是我试图从中获取文本的html片段:

.....
<div class="col-md6">
 <ul`enter code here`>
  <p>
    <strong>Rates</strong>
    <br>
     "0.29C/wh 1-Year Fixed"
    <br>
     "0.39C/wh 2-Year Fixed"
    <br>
     "0.59C/wh 3-year Fixed"
    <br>
   </p>
   <p>....</p>
  </ul>
 </div>

我尝试了以下xPath来获取第一个br标签的包含0.29C的文本元素:

"//*[@id='WebPartWPQ2']/div[1]/div[1]/div[2]/div/div[1]/ul/p[1]/br[1]"

但是,当我用C#编写以下代码时

var productRateElement = Driver.driver.FindElement(By.XPath("/ [@id='WebPartWPQ2']/div[1]/div[1]/div[2]/div/div[1]/ul/p[1]/br[1]"));

var productRateText = productRateElement.Text;
   

在Chrome浏览器中,我可以使用相同的XPath,并且可以在第一个br标记之后定位文本元素,但是在C#代码中它返回null。

希望获得如何解决此问题的反馈。


共1个答案

匿名用户

您可以尝试这些XPath-1.0表达式:

//div/ul/p/strong/following-sibling::br[1]/following-sibling::text()[1]

或整个路径

//*[@id='WebPartWPQ2']/div[1]/div[1]/div[2]/div/div[1]/ul/p/strong/following-sibling::br[1]/following-sibling::text()[1]