建议多刷新几次,这样能让更多的有经验的网友看到
不知道是否遇到过一下情况:
使用 xcode 运行正常,然后在 console 获得
192.168.59.112:8100 这个信息
在浏览器中访问 http:192.168.59.112/status 时,一直在加载;
已经安装了 imobiledevice,并且使用 iproxy 进行设置,这个问题依然存在。。。
标注一下,便于查找
确实不一样,我现在的疑问不在于怎么找到这个元素
我是不明白为什么就在源码中展示为两行了
对前端知道的太少了,遇到这中问题总是不能理解
标注一下,以便于查找
哥们,遇到过这种问题没?
在 IE 中,脚本失败的时候,我会对页面进行截图保存操作
public String takeScreenShot(WebDriver driver, String method){
if (driver == null) {
return null;
}
String imageName = NameUtil.getImageName(method);
String path = getImagePath(imageName);
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(srcFile, new File(path));
LogUtil.frameLog("Screen shot be taken: " + path);
} catch (IOException e) {
LogUtil.error("Screen shot error: " + path);
}
return imageName;
}
函数如上:
现在我发现一个问题,只要有脚本失败,就会产生一个错误:
[FRAME] Delete Cookies and Quit
java.lang.IllegalArgumentException: Last unit does not have enough valid bits
at java.util.Base64$Decoder.decode0(Base64.java:734)
at java.util.Base64$Decoder.decode(Base64.java:526)
at java.util.Base64$Decoder.decode(Base64.java:549)
at org.openqa.selenium.OutputType$2.convertFromBase64Png(OutputType.java:55)
at org.openqa.selenium.OutputType$2.convertFromBase64Png(OutputType.java:53)
at org.openqa.selenium.OutputType$3.convertFromBase64Png(OutputType.java:73)
at org.openqa.selenium.OutputType$3.convertFromBase64Png(OutputType.java:71)
at org.openqa.selenium.ie.InternetExplorerDriver.getScreenshotAs(InternetExplorerDriver.java:238)
at com.eisoo.content.report.ScreenShot.takeScreenShot(ScreenShot.java:30)
这个在 firefox 和 chrome 中也是没有遇到过。。。。
原因已经找到了
是因为我多次强行终止测试脚本的运行
结果任务管理中可以看到有很多个 IEDriverServer 在运行
应该是他们之间发生了串位
我重启了电脑以后这个问题就不存在了
目前稳定下来了
运行还可以
不过遇到了新的问题:
在发布一个动态的时候,会打开一个新的窗口
这种行为在 chrome,firefox 和 IE 中是一样的
不过在 chrome 和 firefox 中是统一在一个大的 window 窗口中显示
而在 IE 中是一个独立的窗口,当然显示的形式无所谓
只是有一个致命的问题:
在 IE 中,切换到新的窗口后,需要我重新登录
即已经建立的 session 和获取的 cookies 都没了,我仅仅是使用 driver.close()
函数关闭了老的窗口,据我所知,driver.quit() 函数才会真的关闭浏览器删除 cookies
再说明一下我所有的脚本在 chrome 和 firefox 中都是正常运行的,包括切换窗口,关闭老的窗口等等
唯有到了 IE,是的在脚本运行时,账号莫名其妙的被弹出了,我目前基本确定,就是切换窗口一起的
虽然不是每次切换窗口都会出现
可以参考一下我最新上传的图片
其实我只是想吐槽一下 IE,真是一步一个坑啊
早就听说过 grid,一直没有尝试
谢谢,这次好好试一下。如果过程中存在什么问题
还请多多指教!
感觉等我做完这个项目以后就能出一个 selenium 和 appium 疑难杂症集锦啦
哈哈哈哈
我们这边测试环境挂了
等我验证了以后再来回复
已关注!
哈哈哈哈,认识了大神,工作生活都顺畅了,哈哈哈,谢谢!
我这就去尝试,今天实在是太开心了
哥们儿,你切换 driver 后,重新安装了 IE 浏览器为 32 吗?
我发现使用 32 位的驱动能够驱动 64 位的浏览器,但是很容易崩溃!
有哪位朋友在 Safari 上做过自动化测试吗?
确实是使用 32 为的速度是正常的,再次感谢!
是 webdriver,那我试试,谢谢!
看上去不错,我们也有同事在使用 jmeter,不知道能不能搞成这种高大上的
软件测试的艺术,简洁明了,除了书中举例使用的语言很老之外,没发现其他缺点
我算是第二遍阅读了
已改
欢迎同行来指教。
mark 一下,以便于后面查找
mark 一下
在 CSDN 中找到了问题的解决方法
经过试验,方法如下:
在 build.gradle 文件中设置:
test {
// enable TestNG support (default is JUnit)
useTestNG()
// set a system property for the test JVM(s)
systemProperty 'browser', project.getProperty("browser")
// explicitly include or exclude tests
include 'com/eisoo/content/script/TestLogin.class'
//include 'com/eisoo/content/script/TestEnterpriseCenter.class'
//include 'com/eisoo/content/script/TestStatistics.class'
//include 'com/eisoo/content/script/TestContentCenter.class'
ignoreFailures = true
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "64m"
maxHeapSize = "512m"
}
然后使用指令 gradle clean test -Pbrowser="firefox"
就可以将选个浏览器的类型传递到 gradle 中
然后 systemProperty 'browser', project.getProperty("browser") 将浏览器类型设置为系统变量
最后在 java 程序中使用 System.getProperty('browser') 将值传递给构造函数,来构造不同的 driver!
谢谢,我试试
不是特别明白
我在网上找到一个使用 jenkins 的参数化构建中定义 String
然后使用 ant 工具在构建时,将参数传递给 JAVA 程序的方法
正在照虎画猫
只是我对 gradle 了解太少,还在试验中
你说的 shell,我不清楚具体该怎么做