selenium-webdriver - Selenium Xpath 使用 gettext() 方法中的值不起作用
问题描述
我的应用程序中有以下 html 元素。
<td height="25">
<i>text1</i>
text2
</td>
我的目标是为我的测试脚本获取 td 元素。为此,我使用以下元素的 getText 方法获取了 td 标记内的文本。
xpath = "//td/i[contains(text(),'text1')]/parent::td"
该方法返回以下文本(以空格开头)
text1 text2
所以我将该文本复制到下面的 xpath 中以获取 td 元素。
xpath = "//td[contains(text(),'text1 text2')]"
但是,我得到了上述元素的 NosuchElement 异常。这怎么可能?
注意:我不能在我的脚本中使用第一个 xpath,因为有几个像这样的 td 元素,它们有一个常见的 i 标签 text(text 1) 但不同的 td 标签 text(text2, text3...)
解决方案
Selenium 捕获WebElement
,它保存元素和所有子元素文本。在这种情况下,<td>
元素文本是和的组合
,因此当您使用第一个表达式获取文本时,您会得到。但是,DOM 中没有元素 text属于该元素。尝试text1
text2
text1 text2
text1 text2
text1
<i>
//i[contains(text(),'text1')]/parent::td[contains(text(),'text2')]
推荐阅读
- python - Spark - 如何从 S3 读取具有文件名的多个 Json 文件
- javascript - 仅允许文本框 html 接受特定格式的数字和字母
- amazon-web-services - 超时弹性搜索 Centos 7
- google-cloud-platform - gsutil 错误:重试请求,尝试 #1... 捕获套接字错误,重试:超时
- java - 如何使用非实体表在 Spring Boot 上创建自定义 @Query?
- java - CPU消耗高
- python - group by Month() 仅在 mysql 中将输出限制为 12 个月
- r - 如何使用 factoextra 包将斜体字体放入树状图中?
- html - 使用 CSS 将 div 徽标居中
- python - 允许用户通过 FB 登录并通过在您的网站上创建帐户登录