3

私は要素を持っています

public ArticlePage()
{
    PageFactory.InitElements(Browser.driver, this)
}

[FindsBy(How = How.Id, Using = "someId")]
private IWebElement btnTitleView { get; set; }

とアクション

Actions action = new Actions(Browser.driver);
action.MoveToElement(btnTitleView).Perform();

しかし、実行しようとすると、エラーが発生します

'System.Reflection.TargetException' オブジェクトがターゲット タイプと一致しません。

でこの要素を見つけようとしましBrowser.driver.FindElement(By.Id("someId"))たが、正しく機能しています。したがって、存在して表示されます。
透過プロキシを使用して実行することは可能Actionsですか? MoveToElement()透過プロキシで同様のアクションを実行する他の方法はありますか?

4

2 に答える 2

2

これを回避する方法の 1 つは、要素をorをIList<IWebElement>使用するよりも and を使用することです。したがって、次を使用できます。foreachLINQ

[FindsBy(How = How.Id, Using = "someId")]
private IList<IWebElement btnTitleView { get; set; }
...

Actions action = new Actions(Browser.driver);
action.MoveToElement(btnTitleView.First()).Perform();

また

foreach (var element in btnTitleView)
{
   Actions action = new Actions(Browser.driver);
   action.MoveToElement(element).Perform();
}
于 2016-10-18T12:42:52.010 に答える