我是Selenium&的新手。也是Java的新手。所以也许我错过了一些显而易见的东西,但是我现在已经开了一段时间了,不能继续前进&完全绝望。请帮忙!
这是我的设置:
我的自定义Driver类实现了WebDriver&设置属性:
public class Driver implements WebDriver {
private WebDriver driver;
private String browserName;
public Driver(String browserName) throws Exception {
this.browserName = browserName;
if(browserName.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver");
this.driver = new ChromeDriver();
}
else if(browserName.equalsIgnoreCase("firefox")) {
System.setProperty("webdriver.gecko.driver", "src/test/resources/geckodriver");
this.driver = new FirefoxDriver();
}
else {
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
<...>
}
BaseTest类获取属性&amp;在@BeforeClass方法中创建驱动程序的新实例(运行测试时使用maven命令传递的浏览器名称):
String browserName = getParamater("browser");
driver = new Driver(browserName);
在@Test内的Test类中,我创建了新的动作&amp;从BaseTest传递驱动程序:
Actions builder = new Actions(driver);
Action mouseOverHome = builder
.moveToElement(pb.testGoodle)
.build();
mouseOverHome.perform();
此代码不起作用 - &gt;没有执行的操作(没有鼠标悬停或任何东西),也没有错误。
但是如果我创造&amp;在@Test本身内定义新的WebDriver:
System.setProperty("webdriver.gecko.driver", "src/test/resources/geckodriver");
WebDriver driver = new FirefoxDriver();
行动完美。 任何想法或提示非常感谢!
答案 0 :(得分:0)
解决!解决!问题出在Page Object中的混乱动作声明中!这里是页面对象中的内容:
DispatchQueue(label: "background", autoreleaseFrequency: .workItem).async {
let realm = try! Realm()
let theDog = realm.objects(Dog.self).filter("age == 1").first
try! realm.write {
theDog!.age = 3
}
}