当前位置: 首页 > 面试题库 >

如何使用WebDriver操作用户选择的文本?

夏意蕴
2023-03-14
问题内容

可以说我的网页中包含以下代码段:

<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);


 类似资料:
  • 问题内容: 我想选择一个 iframe 并在“ 正文”中 输入值。我正在尝试以下代码。 HTML代码: selenium代码: 但是我无法输入值。 有人可以帮我吗? 问题答案: 无需发送密钥,您可以直接进行设置。 如果您要测试诸如TinyMCE之类的WYSIWYG编辑器,请随时阅读以下文章: 使用Selenium WebDriver测试所见即所得的编辑器 然后,您可以直接通过编辑器的API设置内容

  • 使用Selenium WebDriver和Java。在Selenium WebDriver中,有没有办法选择div id而不是select id? 我正在使用此HTML:

  • 我的源代码: 注意:请回答没有IN子句的select查询,而不是update或insert操作。我知道,对于更新和插入,提供了一个batchUpdate方法。

  • 问题内容: 我需要在网页上找到以下元素 我正在用Java为Selenium WebDriver编码。 需要该元素的确切CSS选择器才能与命令一起使用。 选择器还不够好,因为我必须根据不是链接的文本进行搜索,所以我不能使用命令。 问题答案: CSS不允许您执行基于文本的搜索。 xpath 是唯一的选择。

  • 问题内容: 如何使用Selenium WebDriver和Python获取选定的选项: 有人有解决方案吗? 我正在使用它来获取select元素: 是否有类似的东西或类似于“ getFirstSelectedOption”的东西: 然后,我想用类似的方式验证内容: 问题答案: 这很容易处理- 类: