==========================================================================================================
写在前面:
从开始学习Selenium和Webdriver开始,就会遇到各种问题,遇到问题就解决问题,所以这一个阶段也是不断的完善过程中。
==========================================================================================================
1. 报错: org.openqa.selenium.firefox.NotConnectedException 原因: FireFox和Selenium的版本不匹配导致 webdriver启动firefox时如果遇到以下错误,则说明selenium的版本和firefox不兼容了,需要升级selenium: Selenium ->FireFox 2.25.0 -> 18 2.30.0 ->19 2.31.0 ->20 升级selenium jar包 正常启动firefox http://blog.csdn.net/sinat_29741049/article/details/57405191 http://ftp.mozilla.org/pub/firefox/releases/ 证明: 2.52.0->43.0Firefox 可以正常启动 2.alert处理 http://www.cnblogs.com/qiaoyeye/p/5593428.html [org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : 确认删除此客户吗?} (Session info: chrome=59.0.3071.104) (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 6 milliseconds: null Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33' System info: host: 'WIN-UBMLJ97RGF8', ip: '172.16.0.108', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_65' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41), userDataDir=C:\Users\ADMINI~1\AppData\Local\Temp\scoped_dir16596_23783}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=59.0.3071.104, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] Session ID: 5228d8eb9d66ab2a0d06aa25837dabb2]
3.@test的执行顺序问题: http://blog.csdn.net/d6619309/article/details/52755578 在xml里面使用<include>指定需要执行的方法和顺序 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Preserve order test runs"> <test name="Regression 1" preserve-order="true"> <classes> <class name="com.pack.preserve.ClassOne"> <methods> <include name="B" /> <include name="A" /> </methods> </class> </classes> </test> </suite>
4.Eclipse出现乱码问题解决 http://blog.csdn.net/tfy1332/article/details/22151491 是因为编码格式的问题引起的,GBK修改为UTF8格式。 5.Eclipse里,中文字体太小问题 http://jingyan.baidu.com/article/72ee561aa6bc28e16038df6e.html 6.上传图片的怎么写? http://www.cnblogs.com/joewu/p/3701121.html 利用webdriver上传文件非常方便 /*上传文件 * element,上传按钮 例 ("//input[@type='file']") * filePath,文件路径,例 C:\\testContent.pdf */ public void fileUpload(String element, String filePath){ driver.findElement(By.xpath(element)).sendKeys(filePath); }
7.文件选择图片
http://blog.csdn.net/xie_0723/article/details/50617100 http://blog.csdn.net/lily_xl/article/details/51723407 http://blog.csdn.net/huilan_same/article/details/52208363 [2017-07-18 16:22:41:192] [videoyiTestCase.ProductManagerTest] [ERROR] [113] [org.openqa.selenium.ElementNotVisibleException: element not visible (Session info: chrome=59.0.3071.104) (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 50 milliseconds Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33' System info: host: 'WIN-UBMLJ97RGF8', ip: '172.16.0.108', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_65' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41), userDataDir=C:\Users\ADMINI~1\AppData\Local\Temp\scoped_dir12900_16704}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=59.0.3071.104, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] Session ID: 91aae86160d186c5daeec9631c25f830] http://www.cnblogs.com/qixue/p/3928775.html 打开文件夹后,上传文件夹不能正常关闭。 http://blog.sina.com.cn/s/blog_539a70d30101ajsg.html http://www.360doc.com/content/16/0627/09/31226932_571055470.shtml http://www.360doc.com/content/15/1014/15/20107535_505596449.shtml 3:windows弹窗 例如:
思路:
解决的方法可以通过第三方的工具:autoit 来处理。具体方法请自行百度搜索autoit。 http://www.cnblogs.com/fnng/p/4188162.html java http://www.cnblogs.com/testlc/p/6069460.html http://blog.csdn.net/lily_xl/article/details/51723407
将上传的文件地址参数化: http://blog.csdn.net/huilan_same/article/details/52208363 通过autoit的获取对象并编辑脚本: ControlFocus("文件上传", "", "Edit1") WinWait("[CLASS:#32770]", "", 10) ControlSetText("文件上传" ,"", "Edit1", $CmdLine[1]) Sleep(2000)
使用方法不正确导致的错误 String strUploadExePath = "E:\\Yingpu\\000.SVNYP\\01.个人文件夹\\Renqiang\\04.AutoTest\\videoyiAutoTest\\lib\\uploadFile.exe"; String strResourcePath = "E:\\Yingpu\\000.SVNYP\\01.个人文件夹\\Renqiang\\04.AutoTest\\videoyiAutoTest\\resource\\百科展示图片_580_660.png"; Runtime.getRuntime().exec(strUploadExePath + " " + strResourcePath);
8.获得当前java运行的工作路径 方便拼接字符串等使用 http://blog.csdn.net/xionglangs/article/details/51085307 9.找不到元素时,报错 is not clickable at point (209, 606). Other element would receive the click https://stackoverflow.com/questions/11908249/debugging-element-is-not-clickable-at-point-error 10.Chrome已经跑通的Case,在FireFox上上传文件时,跑不通 [org.openqa.selenium.NoSuchElementException: Element is not currently visible and so may not be interacted with https://stackoverflow.com/questions/20046783/org-openqa-selenium-nosuchelementexception-no-such-element 11.关闭子窗口 http://blog.csdn.net/gloria0610/article/details/54691685 public static void closeSubWindow(WebDriver driver){ // Get all window handles Set<String> handles = driver.getWindowHandles(); // Save main Window String mainWindowhandle = driver.getWindowHandle(); // sub window hanlde String detailWindowHandle = null; Iterator<String> iterator = handles.iterator(); while(iterator.hasNext()){ String key = iterator.next(); if (mainWindowhandle.equals(key)){ continue; } detailWindowHandle = key; } WebDriver detailWindow = driver.switchTo().window(detailWindowHandle); detailWindow.close(); handles.remove(detailWindowHandle); driver = driver.switchTo().window(mainWindowhandle); } 12.WebDriver获得元素的禁用状态
以后遇到新的问题,还会记录。
|