java - 如何使用selenium选择页面的一部分?

标签 java selenium

我需要仅使用鼠标选择+拖动+mouseup+ctrl+C 类型的复制来复制除页眉和页脚之外的页面内容。

我正在使用 Selenium Actions 类。

FirefoxDriver driver = new FirefoxDriver();
Actions builder = new Actions(driver);
driver.get("http://connectatgrace.org/im-new/what-to-expect");
builder.click(driver.findElement(By.className("block-holder")))
    .keyDown(Keys.CONTROL).keyDown(Keys.SHIFT)
    .click(driver.findElement(By.id("footer")));
System.out.println("CLICKED");

这可能吗? 请专家帮忙。

最佳答案

如果您想要的只是文本,您可以使用 .getText() 来获取它在右侧元素上。

WebDriver driver = new FirefoxDriver();
driver.get("http://connectatgrace.org/im-new/what-to-expect");
String text = driver.findElement(By.id("main")).getText().trim();
<小时/>

编辑

我现在明白你在寻找什么了。我能够让它与下面的代码一起工作。

基本上,代码将鼠标移动到包含所有所需文本的元素的右下角,<div id="content full-width"> 。单击并按住鼠标按钮,移动到元素的左上角,然后CTRL+C 。我还验证了剪贴板中的文本是否正确。

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://connectatgrace.org/im-new/what-to-expect");
WebElement content = driver.findElement(By.id("content full-width"));
Actions builder = new Actions(driver);
builder.moveToElement(content, 0, 0).clickAndHold().moveToElement(content, 
    content.getSize().getWidth(), content1.getSize().getHeight()).release();
builder.build().perform();
content.sendKeys(Keys.chord(Keys.CONTROL, "c"));
System.out.println("CLICKED");

注意:如果您使用moveToElement() ,它移动到元素的中心。这就是为什么有代码来获取宽度/高度并除以 2。

<小时/>

编辑2

OP发现我有一个拼写错误后,我回去对.moveToElement()做了一些调查。方法。从文档中,

moveToElement(WebElement toElement)

Moves the mouse to the middle of the element.

moveToElement(WebElement toElement, int xOffset, int yOffset)

Moves the mouse to an offset from the top-left corner of the element.

因此更正了代码以使用 .moveToElement(e, 0, 0)从元素的左上角开始选择,然后使用 .moveToElement(content, content.getSize().getWidth(), content1.getSize().getHeight()) 将选择移动到右下角。现在应该可以正常工作了。

关于java - 如何使用selenium选择页面的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155810/

相关文章:

java - selenium java,带有常量的泛型方法

java - 如何使用 apache poi selenium webdriver java 将 excel 中的两个或多个值与 li 中的值进行比较并报告同一 excel 中的通过或失败

java - Gherkin - 你如何用英语编写明确的测试用例?

java - 为什么 Java 允许在其标识符中使用控制字符?

java - 如何将 double 据转换为字节数组,以及如何检查其输出数据是否已正确转换

python - 如何使用 active/selected 类抓取 <li> 标签?

java - Selenium,通过其 xpath 在特定 div 中找到具有特定文本的跨度?

java - 如何为android中的字符串输入生成唯一的哈希码...?

java - Java 日历类中不影响其他对象的静态变量

javascript - Jmeter + selenium api - Java 脚本未处理错误