我没有使用Selenium RC或Remote WebDriver,但是当我试图运行我的测试时,它给我的错误 -
remotewebdriver.unpackAndThrowOnError(Response errorResponse)
我的脚本有简单的代码:
driver.FindElement(By.XPath("xpath");
引发错误:
RemoreWebDriver.FindelementByXPath(String XPath);
请帮我解决问题
答案 0 :(得分:1)
由于WebDriver的体系结构,所有独立于浏览器的驱动程序(FirefoxDriver
,ChromeDriver
等)都是RemoteWebDriver
的子类。这意味着,为了与良好的面向对象编程原则保持一致,错误处理代码对于所有实现都是通用的,并且位于基类或RemoteWebDriver
中。这意味着在任何错误的堆栈跟踪中,在调用堆栈中看到RemoteWebDriver
方法是常见的,甚至是预期的。
说完所有这些之后,我怀疑你真正问的问题不是,“当我不使用遥控器时,为什么我在堆栈跟踪中看到RemoteWebDriver
?”相反,我怀疑你问的问题是,“为什么我的FindElement
呼叫失败?”答案取决于很多因素,但最常见的是你所指定的定位器找不到该元素,或者当你试图找到它时,该元素实际上不在页面的DOM中。在前一种情况下,您应该修复定位器;在后一种情况下,您应该在找到之前等待元素出现(通常使用WebDriverWait
或类似的构造)。
当然,如果没有您尝试自动化的HTML,以及您尝试使用的完整WebDriver代码,则无法提供更详细的建议。