可以说我的网页中包含以下代码段:
<p>这是一些文字</p>
<p
</p
我希望WebDriver在此文本中选择“一些”,就像用户选择它一样。我应该怎么做?我知道如何获取<p>元素:
WebElement editable = getDriver().findElement(By.id("someId")); editable = editable.findElement(By.tagName("p")); System.out.println(p.getText());
println打印“这是一些文本”。
我尝试将键发送到该元素,该键曾经可以工作(在selenium 2.0b中),但是我现在正在使用selenium 2.6.0,但它停止了工作:
editable.sendKeys(Keys.chord(Keys.SHIFT, Keys.LEFT));
有人有想法吗?我正在使用FirefoxDriver。
我曾经使用Javascript为Firefox做过一次。基本上,我在Firefox中使用了range对象来选择文本。根据您要选择的内容更改开始和结束范围索引。这在IE中不起作用,因为在IE中选择范围在概念上是不同的。我没有IE代码,但是由于您担心FF,因此可以尝试一下。让我知道您是否对IE文本范围感兴趣。
String script = "var range = document.createRange();" + "var start = document.getElementById('idofthedivthatcontainstext');" + "var textNode = start.getElementsByTagName('p')[0].firstChild;" + "range.setStart(textNode, 8);" + "range.setEnd(textNode, 13);" + "window.getSelection().addRange(range);"; ((JavascriptExecutor)driver).executeScript(script);