gpt4 book ai didi

java - Selenium moveByOffset 不做任何事情

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:15 26 4
gpt4 key购买 nike

我在 Linux Xubuntu 13.10 上运行最新的 selenium 2.41 和 Firefox 28.0

我试图让 FirefoxDriver 将鼠标移到页面上(在我的测试中,我使用了有线网页,它有很多悬停激活的菜单),但是 moveByOffset 根本没有对鼠标做任何值得注意的事情:

package org.openqa.mytest;

import java.util.List;
import java.io.File;
import java.lang.*;

import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.*;
import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.interactions.*;

import org.apache.commons.io.FileUtils;

public class Example {
public static void main(String[] args) throws Exception {
// The Firefox driver supports javascript
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);

// Go to the Google Suggest home page
driver.get("http://www.wired.com");

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// now save the screenshto to a file some place
FileUtils.copyFile(scrFile, new File("./screenshot.png"));


Actions builder = new Actions(driver);
Action moveM = builder.moveByOffset(40, 40).build();
moveM.perform();

Action click = builder.click().build();
click.perform();
//click.release();

Action moveM2 = builder.moveByOffset(50, 50).build();
moveM2.perform();

Action click2 = builder.click().build();
click2.perform();
//click2.release();

Action moveM3 = builder.moveByOffset(150, 540).build();
moveM3.perform();

for( int i=0; i < 1000; i++)
{
moveM = builder.moveByOffset(200, 200).build();
moveM.perform();
Thread.sleep(500);
moveM = builder.moveByOffset(-200, -200).build();
moveM.perform();
Thread.sleep(500);
}
//Action click3 = builder.click().build();
//click3.perform();
//click3.release();

scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// now save the screenshto to a file some place
FileUtils.copyFile(scrFile, new File("./screenshot2.png"));

driver.quit();
}
}

我期待鼠标移动到不同的元素上并触发所有的悬停 Action ,但什么也没有发生

最佳答案

Actions 的方法 moveByOffset 已被破坏或已被破坏。参见 Selenium WebDriver Bug 3578

(此错误文档中的更多行描述了该错误)。

一个项目成员 (barancev) 声称这个错误应该已经用 Selenium 2.42 版修复了。

尽管如此,我在 openSUSE 12.3 和 Firefox 33.0 上运行的 2.44 版本中发现了同样的错误。 moveToElement 有效,moveToOffset 无效。

关于java - Selenium moveByOffset 不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22703159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com