webDriver运行过程中遇到的问题

摘要:
因此,在您单击登录按钮后,Web驱动程序直接转到页面以查找用户中心的链接。此时,将发送登录请求,但尚未收到相应的响应。也就是说,仍然处于未列出状态的页面无法找到所需的链接。因此,您必须手动单击登录按钮并等待,否则您将始终失败。

1.org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

 【原因】:     selenium的版本和firefox的版本不兼容

 【解决方法】:

       更新selenium和firfox配对的版本

【Selenium】   -> 【FireFox】
2.25.0        ->  18
2.30.0        ->  19
2.31.0        ->  20
2.42.2        ->  29
2.44.0        ->  33 (不支持31,2014/12/1)

2. 【代码片段】:

            System.setProperty("webdriver.chrome.driver","E:\driver\chromedriver.exe");
		ChromeDriver driver = new ChromeDriver();
		
		driver.get("http://localhost:8080/test/login.jsp");
		driver.findElementByName("userName").sendKeys("test");
		driver.findElementById("userPwd").sendKeys("test");
		driver.findElementById("login").click();

		System.out.println(driver.findElementByXPath("//*[@id='modify_psw']/a").getText());
		
		driver.close();

   【报错】:Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element

   【原因】:这个登录是用ajax完成的,而ajax不会引起整个页面刷新,对webdriver来说,他无法判断登录请求发起后是什么时候完成的。导致你的点击登录按钮之后,webdriver直接去页面找用户中心的链接了,而这个时候登录请求才发出去,还没有收到相应呢,也就是还处于未登录状态的页面,当然找不到你要的链接。所以你必须自己手动在点击登录按钮后,做一个等待,否则永远是失败的。

   【解决方法】: 加入Thread.sleep(5000);等待页面加载就好

3.【代码片段】:

	//打开IE8
		System.setProperty("webdriver.ie.driver","E:\driver\IEDriverServer.exe");
		InternetExplorerDriver driver = new InternetExplorerDriver();

【报错】:Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)

【原因】:IE浏览器的设置的安全模式不统一

【解决方法】:将IE的所有类型,都启动安全模式

    webDriver运行过程中遇到的问题第1张

免责声明:文章转载自《webDriver运行过程中遇到的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlserver2008 存储过程使用表参数React-Native采坑总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

selenium-百度新歌榜

打开百度新歌榜, http://music.baidu.com/top/new 在排名前50的歌曲中,找出其中排名上升的歌曲和演唱者 from selenium import webdriver#chrome驱动 执行该步骤时selenium会去到指定路径将chrome driver执行起来driver = webdriver.Chrome(r"D:for...

使用selenium的方式获取网页中图片的链接和网页的链接,来判断是否是死链(二)

上一篇使用Java正则表达式来判断和获取图片的链接以及跳转的网址,这篇使用selenium的自带的API(getAttribute)来获取网页中指定的内容 实现内容:获取下面所有图片的链接地址以及跳转地址,使用get请求判断是否有死链 页面内容如图: 页面的源码,需要获取页面的href后的地址,以及src后的地址,: 代码实现可以看出图片都在一个div...

selenium模拟鼠标操作

Selenium提供了一个类ActionChains来处理模拟鼠标事件,如单击、双击、拖动等。 基本语法: class ActionChains(object): """ ActionChains are a way to automate low level interactions such as mouse movements...

Selenium WebDriver VS Selenium RC

  WebDriver到底是什么? WebDriver是一个Web的自动化测试框架,它支持你执行你的测试用例在不同的浏览器上面,并不像Selenium一样只支持Firefox。     WebDriver也支持你通过一种编程语言来创建你的测试脚本(这是不可能的在Selenium IDE里面)。 你能用条件判断语句,比如 if-then-else或...

selenium 通过xpath进行元素定位--By.xpath()

xpath是XML路径语言,它可以用来确定xml文档中的元素位置,通过元素的路径来完成对元素的查找。HTML就是XML的一种实现方式,所以xpath是一种非常强大的定位方式。xpath也分几种不同类型的定位方法。 一种是绝对路径定位。这种定位方式是利用html标签名的层级关系来定位元素的绝对路径,一般从<html>标签开始依次往下进行查找。如百...

总结Selenium自动化测试方法(四)WebDriver常用的操作

四、WebDriver常用的操作 1、控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back() #控制浏览器前进到下个页面 self.driver.forward() #刷新当前页面 self.driver.refresh() 2、控制页面元素的简单...