- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个奇怪的案例, Selenium Chrome 驱动程序 getText()
方法 (java) 为某些元素返回一个空字符串,即使它为其他具有相同元素的元素返回一个非空字符串xpath
。这是页面的一小部分。
<div __gwt_cell="cell-gwt-uid-223" style="outline-style:none;">
<div>Text_1</div>
<div>Text_2</div>
<div>Text_3</div>
<div>Text_4</div>
<div>Text_5</div>
<div>Text_6</div>
</div>
对于每个内部标签,我可以获得 getTagName()
、getLocation()
、isEnabled()
的有效返回值,和 isDisplayed()
。但是,getText() 会为某些 div 返回一个空字符串。
此外,我注意到如果我使用 mac chrome 驱动程序,它始终是 getText()
返回空字符串的“Text_5”。如果我使用 windows chrome 驱动程序,它始终是 getText()
返回空字符串的“Text_2”。如果我使用 firefox 驱动程序,getText()
从所有 div 中返回预期的文本。
有其他人遇到过这种困难吗?
在我的代码中,我使用了类似的东西……
ArrayList<WebElement> list = (ArrayList<WebElement>) driver.findElements(By.xpath(“my xPath here”));
for (WebElement e: list) System.out.println(e.getText());
如下所示,这是我正在使用的实际 xPath
。上面的页面片段处理最后两个 div。
//*[@class='gwt-DialogBox']//tr[contains(@class,'data-grid-table-row')]//td[contains(@class,'lms-assignment-selection-wizard-cell')]/div/div
最佳答案
更新: textContent
属性是一个更好的选择,并且在大多数浏览器中都受支持。这篇博文详细解释了这些差异:innerText vs. textContent
作为替代方案,innerText
属性将返回存在于 DOM 中的元素的文本内容。
element.getAttribute("innerText")
isDisplayed()
方法有时会在元素没有真正隐藏而是在视口(viewport)之外时绊倒; getText()
为此类元素返回一个空字符串。
您也可以通过使用 javascript 滚动到它来将元素带入视口(viewport),如下所示:
((JavaScriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
然后 getText()
应该返回正确的值。
isDisplayed()
方法的详细信息可以在这个 SO 问题中找到:
关于java - selenium chrome 驱动的getText() 方法有时会返回一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888592/
我正在尝试创建一个程序,其中字符串的前三个字符重复给定次数,如下所示: foo('Chocolate', 3) # => 'ChoChoCho' foo('Abc', 3) # => 'AbcAbcA
我有以下字符串: std::string str = "Mode:AAA:val:101:id:A1"; 我想分离一个位于 "val:" 和 ":id" 之间的子字符串,这是我的方法: std::st
DNA 字符串可以是任意长度,包含 5 个字母(A、T、G、C、N)的任意组合。 压缩包含 5 个字母(A、T、G、C、N)的 DNA 字母串的有效方法是什么?不是考虑每个字母表 3 位,我们可以使用
是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法? 例子: str1='aaaaa' str2='bbbbbbaabaabbbb' if str
使用 OAuth 并使用以下函数使用我们称为“foo”(实际上是 OAuth token )的字符串加密 key public function encrypt( $text ) { // a
我是一名优秀的程序员,十分优秀!