版权声明:本文为AutotestOps原创文章,未经允许禁止转载。

今天SuperXi独家教你一招专家级技巧,记住了,这招是AutoTestOps独家发布,你在百度上搜不到的(发布后搜到我的文章不算哈


工作之余我给我的学生们出了这道题,访问www.autotestops/test/menu.html,用代码模拟人工点击多级菜单, 基本功扎实的学生很快可以写出如下代码:

QQ图片20180330131035.png


乍一看功能也能实现,可是工作中这样大量写的话,维护起来既不美观,一坨一坨的代码也不利于维护。下面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原创文章,未经允许禁止转载。