在使用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驱动程序 info:org.openqa.selenium.firefox.FirefoxDriver功能 [{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, takeScreenshot = true,version = 30.0}] at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 来自java.lang.reflect.Constructor.newInstance(未知来源) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) 在 org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348) 在 org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:445
如何解决此错误或此错误表示/意味着什么?
答案 0 :(得分:0)
尝试单击网页的某个元素时出现相同的错误。 我也尝试使用坐标,但是有相同的错误。 (JavaScript错误b为空)
但最终可以通过在尝试访问并单击元素之前添加刷新代码行来工作。
之前:
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(); )。