在使用Selenium Webdriver运行测试时,我总是得到以下异常。
我已经完成了一些谷歌搜索,但找不到任何与此异常相关的内容,但发现当您在代码中执行JavaScript时会发生此异常但我没有这样做。
抛出此异常的代码: -
public void foo(){
WebDriver driver = new FirefoxDriver();
driver.get("www.xyz.com");
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.xpath("(//iframe[contains(@id ,'easyXDM_default')])[2]")));
WebElement resultsDiv = driver.findElement(By.xpath("(//textarea[contains(@id,'ext-comp')])[1]"));
.....
}
每当我们在应用程序中找到textarea字段并且字段在框架内时,就抛出异常。
下面是堆栈跟踪: -
org.openqa.selenium.WebDriverException:b为null
命令持续时间或超时:21毫秒构建信息:版本:'2.41.0',修订版:'3192d8a6c4449dc285928ba024779344f5423c58',时间:'2014-03-27 11:29:39'系统信息:主机:'HPDA0128',ip:' 10.9.60.36',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.7.0_55'会话ID:f228cc09-2dd5-4658-9950- c504bf007b7f驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform = XP,acceptSslCerts = true,javascriptEnabled = true,cssSelectorsEnabled = true,databaseEnabled = true,browserName = firefox,handlesAlerts = true,browserConnectionEnabled = true,webStorageEnabled = true,nativeEvents = false,rotate = false,locationContextEnabled = true,applicationCacheEnabled = true,takesScreenshot = true,version = 30.0}] at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source )org.openqa.selenium.remote.ErrorHandler.cr上的java.lang.reflect.Constructor.newInstance(未知来源)位于org.openqa的org.openqa.selenium.remote.remote上的org.openqa.selenium.remote.RemoteWebDriver.exe(RemoteWebDriver.java:595)上的org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)中的eateThrowable(ErrorHandler.java:193) .selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348)at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:445
如何解决此错误或此错误表示/意味着什么?
我在尝试点击我的网页元素时遇到了同样的错误。我也尝试使用坐标,但有相同的错误。 (Javascript错误b为null)
但它最终通过在尝试访问和单击元素之前添加刷新代码行来工作。
之前:
By myBy= By.xpath("//img[contains(@title,'title')]");
driver.findElement(myBy).click();
后:
driver.navigate().refresh();
By myBy= By.xpath("//img[contains(@title,'title')]");
driver.findElement(myBy).click();
也许你应该在尝试访问元素之前尝试刷新页面(driver.navigate()。refresh();)。