如何在selenium中单击Web元素的特定位置?

时间:2016-11-11 10:59:15

标签: java selenium selenium-webdriver

我正致力于视频播放器自动化。我在点击视频播放器进度条的末尾时遇到了困难 考虑一下youtube视频的示例。 在xpath的帮助下,我能够找到视频进度条的元素。现在我想点击视频的结尾。

我尝试使用 moveToElement(ele,xOffset,yOffset) 。但我不能在这里有静态偏移,因为视频播放器的大小取决于浏览器的窗口大小。我试图获取web元素的大小并将其用作xoffset,但似乎没有起作用。 moveToElement(ele,ele.getRect()。getWidth() - 10,yOffset) 。关于如何实现这一点的任何建议?

3 个答案:

答案 0 :(得分:10)

试试这段代码。我在Windows 8上使用webdriver 2.53尝试使用Chrome 54.在测试期间不要触摸鼠标,或者在测试开始时更好地将光标移出屏幕范围。

   WebElement elem = driver.findElement(By.className("ytp-progress-bar"));

    int width = elem.getSize().getWidth();

    Actions act = new Actions(driver);
    act.moveToElement(elem).moveByOffset((width/2)-2, 0).click().perform();

你可以从div' ytp-progress-bar'中找出许多属性的偏移量。你不需要找到宽度等。

您最初必须移动到进度条,因为它会在2-3秒后因视频屏幕上的不活动而消失。

答案 1 :(得分:0)

有时候Selenium还不够,你需要使用Javascript和JQuery。我不是Java开发人员,但C#中的代码看起来像:

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("Your Script");

JQuery会有更多帮助。我希望我能帮到你。

答案 2 :(得分:0)

要获得点击页面的确切位置,有一个免费的Firefox附加组件可以帮助您实现这种准确性。它被称为' MeasureIt'。这样,您可以测量要单击的确切垂直和水平距离