硒 getText 行为

发布于 2024-10-25 07:55:27 字数 549 浏览 0 评论 0 原文

我有一个 html 文件,必须使用 selenium 进行解析。 我需要提取 div 标记中包含的文本,该标记具有唯一的 id 。 原文件如下:

<div id="debugState" style="display:none"> 
            Model: ModelCode[UK51]
            Features: [S08TL, S0230, S0851, S0428, S01CD, S0879, S01CA, S08SP, S0698,  S01CB, S0548, S08SC, S08TM, S04AK, S01CC, S0801]
            Packages: [S0801]
</div>

执行的命令如下: selenium.getText("//div[@id='debugState']"); 结果是空字符串(而不是包含的文本)。我是否做错了什么,或者这是由于 style="display:none" 开关导致的预期结果。

I have an html file which has to be parsed using selenium.
I need to extract a the text contained in a div tag which has an unique id.
The original file is as follows:

<div id="debugState" style="display:none"> 
            Model: ModelCode[UK51]
            Features: [S08TL, S0230, S0851, S0428, S01CD, S0879, S01CA, S08SP, S0698,  S01CB, S0548, S08SC, S08TM, S04AK, S01CC, S0801]
            Packages: [S0801]
</div>

The performed command is as follows: selenium.getText("//div[@id='debugState']");
and the result is the empty String (instead of the contained text). Am I doing something wrong or this is the expected result due to the style="display:none"switch.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流云如水 2024-11-01 07:55:27

您是否尝试过删除 style="display:none" 属性以查看它对您的测试有何影响?根据 JavaDoc 这个方法应该可以满足您的需要。

Have you tried removing the style="display:none" attribute to see what effect it has on your test? According to the JavaDoc this method should do what you need.

苏佲洛 2024-11-01 07:55:27

我在尝试使用 getText() 方法获取 Web 元素内的文本时遇到了很大的困难。
例如,如果您尝试在更新元素后检索文本,方法是:

WebElement test = driver.findElement(By.id("idvalue"));

当您使用 WebElement.getText() API 打印文本内容时,您最终将获得更新字段之前包含的旧值。

我建议通过执行 JScript 来访问 DOM 信息(在我的例子中,我已经在使用 Selenium 测试的页面中包含了 jQuery)。即使该元素是隐藏的,就像您的情况一样,您也会得到您需要的东西。

String test = (String)((JavascriptExecutor)driver).executeScript("return $('#idvalue').text()");

ps 我正在使用 jQuery text() 假设我的 idvalue 是 DIV 元素

I'm having really hard times trying to get text inside web elements by using the getText() method.
For example if you are trying to retrieve a text in an element after updating it by using:

WebElement test = driver.findElement(By.id("idvalue"));

when you print the text's content by using the WebElement.getText() API, you'll end up getting the old value contained before updating the field.

What I suggest is accessing the DOM info by executing JScript (in my case I had already included jQuery in the page I was testing with Selenium). Even if the element is hidden, like in your case, you'll get what you need.

String test = (String)((JavascriptExecutor)driver).executeScript("return $('#idvalue').text()");

p.s. I'm using jQuery text() assuming my idvalue is a DIV element

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文