我有一个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"
切换导致的预期结果。
答案 0 :(得分:1)
您是否尝试删除style="display:none"
属性以查看它对您的测试有何影响?根据{{3}},这种方法可以做你需要的。
答案 1 :(得分:1)
我很难通过使用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()");
P.S。我正在使用jQuery text()假设我的idvalue是一个DIV元素