Selenium 硒的getText行为

Selenium 硒的getText行为,selenium,gettext,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, S054

我有一个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>

型号:型号代码[UK51]
特征:[S08TL、S0230、S0851、S0428、S01CD、S0879、S01CA、S08SP、S0698、S01CB、S0548、S08SC、S08TM、S04AK、S01CC、S0801]
套餐:[S0801]
执行的命令如下:
selenium.getText(“//div[@id='debugState']”)

结果是空字符串(而不是包含的文本)。我是否做错了什么,或者这是由于
style=“display:none”
开关导致的预期结果

您是否尝试删除
style=“display:none”
属性以查看它对您的测试有何影响?根据这个方法,你应该做你需要做的事情。

我很难用getText()方法获取web元素中的文本。
String test = (String)((JavascriptExecutor)driver).executeScript("return $('#idvalue').text()");
例如,如果您试图在使用以下命令更新元素后检索该元素中的文本:

WebElement test = driver.findElement(By.id("idvalue"));
当您使用WebElement.getText()API打印文本内容时,您将在更新字段之前获得包含的旧值

我建议通过执行JScript来访问DOM信息(在我的例子中,我已经在使用Selenium测试的页面中包含了jQuery)。即使元素是隐藏的,比如在你的例子中,你也会得到你所需要的

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

p、 我使用jQuery text()假设我的idvalue是一个DIV元素

你是对的。getText公共java.lang.String从接口复制的getText(java.lang.String定位器)说明:Selenium获取元素的文本。这适用于包含文本的任何元素。此命令使用元素的textContent(类似于Mozilla的浏览器)或innerText(类似于IE的浏览器),这是显示给用户的呈现文本。请对此进行投票,因为getText仅在元素可见时返回数据,但是,有时确实需要测试隐藏元素的文本,executeScript是唯一的方法。可能重复: