不能搬到webelement?

时间:2016-01-04 19:27:02

标签: c# selenium

显然,selenium不会与webelement交互,直到它在视图中,并且selenium会自动尝试滚动到该webelement。但在我的情况下,当我尝试单击某个特定按钮时,它不会将其滚动到视图中,它只是滚动到页面中的随机位置。

目标: 将webelement滚动到视图中,然后单击该元素。

我已经使用的方法:

element.Click(); //method 1

Actions actions = new Actions(driver); // method 2
actions.MoveToElement(element);
actions.Perform();

IJavaScriptExecutor js = driver as IJavaScriptExecutor; //method 3
js.ExecuteScript("$('#Id_Body' + element_id)[0].scrollIntoView( true );"); //because the driver scrolls to a random place I use this to get back to the top of the page.
int Y = element.Location.Y, X = element.Location.X;
js.ExecuteScrip($"window.scrollBy( {X}, {Y};");

我正在使用selenium 2.48.0,firefoxDriver 43.0.1

这个问题有解决方法吗?如果有人知道旧版本的selenium / firefox可以使用其中一种方法正常工作,请告诉我,谢谢。

2 个答案:

答案 0 :(得分:2)

尝试加倍ID

MoveToElement

首先移动到元素区域,然后移动到要单击的元素。

答案 1 :(得分:0)

为什么不直接使用scrollIntoView()

js.ExecuteScript("arguments[0].scrollIntoView();", element);