下决心终于要写自己的博客了。公司偶用到Selenium, 编写Java自动化测试脚本,就是为了糊弄甲方人员,不过我还是认真的学习一下下。某年某月记之......
即使总结,也是大杂烩,啥都有了,刚开始免不了看自己感觉不错的文章了:案例:http://blog.csdn.net/smile_miracle/article/details/70817088
美文:http://www.cnblogs.com/fnng/p/3653793.html?utm_source=tuicool&utm_medium=referral.
面试题:http://www.cnblogs.com/fnng/p/3653793.html
问题记录:
(1).在写的过程遇到alert事件,因为采用 PhantomJSDriver 无法处理alert事件,无解,我就直接把页面alert去掉,后期自己在瞅瞅(page.onAlert = function(msg) {}, phantomjs是无头浏览器处理alert事件方法)
(2).用Selenium执行js:
ArrayList<String> cliArgsCap2 = new ArrayList<String>();
cliArgsCap2.add("--web-security=false");
cliArgsCap2.add("--ssl-protocol=any");
cliArgsCap2.add("--ignore-ssl-errors=true");
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"D:/Program Files/phantomjs-2.1.1-windows/bin/phantomjs.exe");
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap2);
dcaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");
dcaps.setJavascriptEnabled(true);
driver = new PhantomJSDriver(dcaps);
......
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("page.onAlert = function(msg) {}");
driver.switchTo().alert().accept();
(3).页面display="none"的是发现不了的。登陆后注意iframe切换,切换到下一个iframe回到原来的iframe :driver.switchTo().defaultContent();
driver.switchTo().frame(frame);
流程:以上代码没有测试过,我是用Selenium IDE插件获取绝大部分代码,然后复制代码进行测试,如果错误进行定位,采用Selenium的8种定位方式进行重新定位。整个测试需要进行登录。
就不发我自己的写的代码了,深入的不多,说不定那天研究深入还会重写。