c# - Selenium C#:如何在
标签后获取文本
问题描述
我看过其他关于在 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# & Selenium 中编写以下代码时,我得到文本的 null 返回:
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。
希望得到反馈如何解决这个问题。
解决方案
您可以尝试这些 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]
推荐阅读
- angular - 如何从java的响应中以角度下载文件?
- android - 哪个更可取:Rx-Subject 或 Android BroadcastReceiver
- r - 创建嵌套的分面网格
- javascript - 使用 CryptoJs 库时,android 和 javascript 的加密密码不同
- scala - 基于 Map 从 List[String] 转换为 List[Int]
- python - 如何获取上个月的日期范围?
- django - 使用 Django 实现基于翻译键的国际化
- python - 使用 QSortFilterProxyModel 时的 pyQt5 段错误
- r - 在 ggplot2 中调整极坐标图的开始
- ruby - 世博会挂在 CocaPods 安装上