我正在将测试脚本从 Selenium RC 迁移到 WebDriver。到目前为止最大的问题是我们的扩展类必须重写以使用 WebDriver API,我不介意,但是 By 类给我带来了问题,主要是因为你必须明确说明你是什么类型的元素在调用 FindElements 方法时使用。因此,我没有为每个元素类型(css、XPath、name、id 等)创建一个方法,而不是隐式确定元素类型的单击方法,如下所示:
public void ClickByXPath(string xpath) { _driver.FindElement(By.XPath(xpath)).Click(); }
这可行,但我不得不为每种元素类型创建很多单独的方法(对于 GetText、IsElementPresent 等)。在编写脚本时,为每个方法键入名称会变得很旧,因为它们很长,我必须检查以查看将哪种类型的元素用作参数。我想拥有这样的东西......
public void Click(XPath locator) { ... }
public void Click(Name locator) { ... }
但是,我不确定使用 WebDriver 解决此问题的最佳方法。任何建议将不胜感激。提前致谢。