Selenium getText行为

时间:2011-03-22 10:37:47

标签: selenium gettext

我有一个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"切换导致的预期结果。

2 个答案:

答案 0 :(得分:1)

您是否尝试删除style="display:none"属性以查看它对您的测试有何影响?根据{{​​3}},这种方法可以做你需要的。

答案 1 :(得分:1)

我很难通过使用getText()方法尝试在Web元素中获取文本。 例如,如果您在使用以下命令更新元素后尝试检索元素中的文本:

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

当您使用WebElement.getText()API打印文本内容时,您最终会在更新字段之前获取旧值。

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

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

P.S。我正在使用jQuery text()假设我的idvalue是一个DIV元素