Java教程

web自动化之单步调试

本文主要是介绍web自动化之单步调试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、为什么要使用单步调试

  当我们在编写web自动化用例的时候,经常会把定位好的元素写到脚本中,然后再执行脚本去查看浏览器中的操作是否按照脚本的逻辑去执行。每定位一个或多个元素就会去执行脚本去查看浏览器的自动执行是否按照预期,一条自动化用例写下来,执行多次用例,每次都会打开浏览器然后再执行,这样会比较浪费时间,而且,经常会遇到定位的元素不可点击等问题。那么,我们应该如何确保每一步操作的正确性,如何提高页面自动化的写作效率呢?接下来,我会讲解如何通过单步调试来提升自动化效率。

 

2、利用selenium控制已经打开的浏览器

  首先,我们可以利用Chrome DevTools协议,它允许客户检查和调试Chrome浏览器。按住win+R键打开运行窗口,输入如下命令,点击回车:

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenium_ui_autotest\chrome_temp"

   

 

 

 

  此时会弹出一个浏览器窗口,我们在浏览器中提前打开我们需要操作的网页,此处我需要操作百度,就输入www.baidu.com,打开百度的首页地址

   

 

 

 

  • -remote-debugging-port的值,可以指定任何打开的端口,必须确保该端口未被占
  • -user-data-dir的值,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会影响到你的默认配置文件

 

3、实现单步调试操作

  接下来我们编写脚本来实现单步调试,此处我的需求是在输入框中输入百度字样,并点击搜索。

  话不多说,直接上代码:

public class AutoTestDebug {
    public static void main(String[] args) {
        // 设置chromedriver.exe路径
        System.setProperty("webdriver.chrome.driver", "src\\test\\resources\\chromedriver.exe");
        // 以debug模式新建WebDriver对象
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");
        WebDriver driver = new ChromeDriver(chromeOptions);
        // 编写需要调试的代码
        try {
            driver.findElement(By.cssSelector("#kw")).sendKeys("百度");
            driver.findElement(By.cssSelector("#su")).click();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

  执行代码后可以看到浏览器中自动输入了”百度”字样,并且出现了搜索结果。至此,可以证明我们定位的输入框元素和”百度一下”按钮元素的正确性。记得get下这个小技巧把!

    

这篇关于web自动化之单步调试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!