1

我希望有人能指出我正确的方向。我们使用 Selenium Webdriver 2.28 和 Internet Explorer 版本 8。

我们的测试通过下面的方法,定位器参数是 {By.XPath: //body}

private IWebElement WaitAndGetElement(By locator)
{
    var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(Constants.DefaultWaitTimeSecs));
    var elementToWaitFor = wait.Until(driver => driver.FindElement(locator));

    return elementToWaitFor;
}

当代码命中该方法时。下面的异常被抛出。这个问题在 IE 中是完全可以重现的。我们不会在 Chrome 或 FireFox 中遇到此错误。

如果有人能指出我们正确的方向,我们将不胜感激。

非常感谢。克里斯蒂安·克拉克

OpenQA.Selenium.InvalidSelectorException:无法评估 xpath 表达式“//body”或不会生成 WebElement(警告:服务器未提供任何堆栈跟踪信息)

命令持续时间或超时:156 毫秒有关此错误的文档,请访问:http ://seleniumhq.org/exceptions/invalid_selector_exception.html

构建信息:版本:'2.28.0',修订:'18309',时间:'2012-12-11 20:21:18' 系统信息:os.name:'Windows 2003',os.arch:'x86' , os.version: '5.2', java.version: '1.6.0_31' 会话 ID: c72ebe1d-e7f0-4fdb-aab8-9f86b374a89a

驱动程序信息:org.openqa.selenium.ie.InternetExplorerDriver Capabilities [{platform=WINDOWS, javascriptEnabled=true, cssSelectorsEnabled=true, handlesAlerts=true, browserName=internet explorer, nativeEvents=true,takesScreenshot=true, version=8}]

4

2 回答 2

0

不是我最喜欢的方法,但尝试将您的XPath表达式更改为“.//body”,它很可能适用于这个'fix'

虽然我不建议在 IE 上使用这些定位器,因为即使在 WebDriver 上它们也被证明速度较慢,如果可能的话,使用 CSS 定位器。

于 2013-01-15T19:40:19.073 回答
0

你是如何获得 XPATH 的?是 Firefox XPATH Checker 插件吗?如果是这样,我建议只将 XPATH 与 Firebug 一起使用。那个似乎与 IE 一起工作的最好的 IMO。在 Firebug 中,一旦您选择了元素,您可以右键单击该元素并选择 Copy XPATH。

于 2013-01-15T20:44:36.197 回答