版权声明:本文为AutotestOps原创文章,未经允许禁止转载。
今天SuperXi独家教你一招专家级技巧,记住了,这招是AutoTestOps独家发布,你在百度上搜不到的(发布后搜到我的文章不算哈。
工作之余我给我的学生们出了这道题,访问www.autotestops/test/menu.html,用代码模拟人工点击多级菜单, 基本功扎实的学生很快可以写出如下代码:
乍一看功能也能实现,可是工作中这样大量写的话,维护起来既不美观,一坨一坨的代码也不利于维护。下面SuperXi示范一下,高手写出的代码应该是什么样子的:
public class MultipleMenuTest {
private WebDriver driver;
private Actions action;
Consumer<By> hover = (By by) -> {
action.moveToElement(driver.findElement(by))
.perform();
//为了演示方便更好的观察效果,我们强行等待2秒,但实际工作中这种方式要尽量少用,这里只是演示方便
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
};
@Test
public void hoverTest() {
driver.get("http://www.autotestops.com/test/menu.html");
hover.accept(By.id("ui-id-8"));
hover.accept(By.id("ui-id-13"));
hover.accept(By.id("ui-id-14"));
}
@BeforeTest
public void setupDriver() {
driver = new FirefoxDriver();
action = new Actions(driver);
}
@AfterTest
public void teardownDriver() {
driver.quit();
}
巧妙的封装了一下,代码是不是既美观又便于维护,在AutoTestOps系列高级课程中,这种独家招法(你在百度上永远学不到的技巧)还有很多很多。
其实同样的功能同样的需求,在不同水平的人写出的代码一对比,就能立马看出水平。如果你立志成为Selenium顶尖高手的话,那么报名AutoTestOps系列高级课程会让你往这个方向走出相当大的一步。
Happy Auto Testing
SuperXi
版权声明:本文为AutotestOps原创文章,未经允许禁止转载。