我在 HTML 中有一个链接,我使用页面对象模式用 Selenium 编写脚本。但是当使用 pageFactory 初始化对象时,我无法执行 MouseMove 操作。所以,我有这样的课:
class BingPage
{
private readonly IWebDriver driver;
public static readonly String BASE_URL = "http://bing.com/";
[FindsBy(How = How.XPath, Using = ".//*[@id='scpt2']/a[text()='Shopping']")]
private IWebElement ShoopingLink;
public BingPage(IWebDriver driver)
{
this.driver = driver;
//Page Factory will use Driver to init searchButton and queryEdit objects
PageFactory.InitElements(driver, this);
}
public void HoverShoppingLink()
{
Actions builder = new Actions(driver);
IWebElement elem = driver.FindElement(By.XPath(".//*[@id='scpt2']/a[text()='Shopping']"));
builder.MoveToElement(elem).Build().Perform();//This will work
builder.MoveToElement(ShoopingLink).Build().Perform(); //This will fail
}
}
标有注释“这将失败”的行将引发异常“必须为移动操作提供位置。参数名称:actionTarget”
但是当我手动查找元素时 - 它可以工作。有人能告诉我为什么吗?
它是 .Net 的 selenium 2.0,带有 IE 驱动程序的 .Net 4.0。