【问题标题】:In Selenium, moving to an (x,y) on browser screen doesn't move mouse pointer. Why?在 Selenium 中,移动到浏览器屏幕上的 (x,y) 不会移动鼠标指针。为什么?
【发布时间】:2016-12-10 02:36:39
【问题描述】:

上下文:Windows 10; C#.NET; Selenium WebDriver(Chrome);清除脚本

我已经通过 ClearScript 向 javascript 公开了许多 Selenium 函数。在脚本中...

var url = "http://www.google.com.au";
var driver = new CSChromeDriver();
driver.Navigate().GoToUrl(url);

...

var topLeft = driver.FindElement(CSBy.TagName("body"));
var builder = new CSActions(driver);
var tl = builder.MoveToElement(topLeft, 200, 200);
tl.Build().Perform();

... 我创建了一个 Chrome 网络驱动程序的实例,导航到一个网站,找到“body”标签,创建 Actions 对象的一个​​实例,然后使用它移动到 (x,y) 的 ( 200,200) 从身体的左上角。

我有代码(未显示),它告诉我浏览器认为鼠标在哪里。在上述之后,浏览器向我报告它的内部 (x,y) 是 (200,200),这很棒。不太好的是屏幕上的鼠标指针没有移动到匹配。

有没有办法让鼠标指针反映浏览器的内在现实?

【问题讨论】:

    标签: javascript c# selenium clearscript


    【解决方案1】:

    moveToElement 不会将鼠标指针更改为指向该坐标。我将使您的变量“tl”引用该坐标中存在的元素,您可以执行单击它等操作。

    不,selenium 没有任何内置方法可以使鼠标指针从一个位置移动到另一个位置(我的意思是显示过渡)。

    如果您想突出显示正在执行当前操作的元素,您可以使用 javascript 执行器在 selenium 中执行此操作

    JavascriptExecutor js=(JavascriptExecutor)driver;
    js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2015-08-24
      相关资源
      最近更新 更多