首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Selenium中如何在html标签之间添加额外的文本?

在Selenium中如何在html标签之间添加额外的文本?
EN

Stack Overflow用户
提问于 2017-07-22 03:58:11
回答 2查看 556关注 0票数 1

这是我学习Selenium的第二天。我想提取这些html标签之间的文本。

HTML代码示例:

代码语言:javascript
运行
复制
<div id="media-buttons" class="hide-if-no-js"/>

<textarea id="DescpRaw" class="ckeditor" name="DescpRaw" rows="13" cols="100" style="visibility: hidden; display: none;">

Cactus spines are produced from specialized structures 
called areoles, a kind of highly reduced branch. Areoles 
are an identifying feature of cacti. 

</textarea>
</div>

所需结果:

代码语言:javascript
运行
复制
Cactus spines are produced from specialized structures 
called areoles, a kind of highly reduced branch. Areoles 
are an identifying feature of cacti. 

我尝试过下面的Selenium驱动程序,但没有结果。

代码语言:javascript
运行
复制
String bodyhtml = driver.findElement(By.xpath("//textarea[@name='DescpRaw']")).getText();

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-07-22 04:44:14

代码语言:javascript
运行
复制
String bodyhtml = driver.findElement(By.xpath("//textarea[@name='DescpRaw']")).getAttribute("innerHTML");

另外,我推荐使用ID,因为它是可用的,而且速度更快。

代码语言:javascript
运行
复制
String bodyhtml = driver.findElement(By.id("DescpRaw")).getAttribute("innerHTML");
票数 1
EN

Stack Overflow用户

发布于 2017-07-22 13:05:46

有几件事。

  1. 如果元素有ID,则应始终首选使用ID。按照HTML标准,它在页面上应该是唯一的,因此它是任何元素的理想标识符。

  1. 您遇到的问题是TEXTAREA是隐藏的。给定元素上的style="visibility: hidden; display: none;",您就可以看出这一点。Selenium被设计成像用户一样与网页交互。任何看不见的元素,硒都不会与之相互作用。理想的情况是弄清楚如何公开或使文本区域字段可见……单击某个按钮/链接/任何内容,然后从其中获取文本。对于TEXTAREA字段,您可能需要对元素执行.getAttribute("value")操作。

使元素可见的两种替代方法是使用Javascript获取元素文本,或者按照其他人的建议使用.getAttribute("innerHTML")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45245788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档