向所有人致以问候!Selenium Webdriver。 Internet Explorer 9中的鼠标操作不准确
我不是以英语为母语的人,所以请原谅我的公平语法。
Selenium是一个用于在不同浏览器中测试Web应用程序的框架。我想问问使用Selenium的人是否有任何帮助。我在Selenium的谷歌集团问人,但没有人帮助我。
我正在使用Selenium Webdriver进行大量鼠标交互的项目。我正在编写C#测试。当我的团队开始使用Selenium Webdriver时,我们注意到,鼠标操作(OpenQA.Selenium.Interactions.Actions)在IE中有一些意想不到的行为,并且在不同的浏览器(甚至不同的计算机)上有不同的工作方式。我第一次是唯一一个使用鼠标操作的测试人员。我在指责Selenium Webdriver,并试图找到避免这种不准确的方法。我正在调查这个问题很长一段时间,但没有任何结果。但我不想把时间花在史前史上。
好吧,让我描述一下情况。我们创建了演示项目:简单页面。我们通过按住鼠标左键实现了在此画布上绘画的可能性。所以我希望你对此很清楚。
下一个重要的事情是我们启用了日志记录到控制台。也就是说,我们可以通过打开控制台来查看画布内鼠标箭头的坐标。
然后我们写了一个测试:
Actions a = new Actions(driver);
a.Build();
a.MoveToElement(canvas, 100, 100)
.ClickAndHold()
.MoveByOffset(100, 0)
.Release();
a.Perform();
的代码非常简单。只需将鼠标箭头移动到画布上,然后将鼠标箭头偏移(100,100),然后垂直移动100(使用鼠标左键)。正如你所能理解的那样,日志的结果应该是(200,100)。
但是,这是最有趣的事情:我的同事们有同样的结果(200,100)!但是他们在1个月前有不准确的地方(这就是为什么我们认为鼠标操作不准确)。我仍然有不准确的结果:(192,96)。所以每100px的偏移量有4px的错误。我的同事们不明白,他们发生了什么变化,以及为什么鼠标操作现在或他们能够正常工作。
一个更有趣的是,在视觉上(我想提醒你,我们就可以在画布上作画),这是绝对100像素(我们移动鼠标箭头垂直握住时,鼠标左键)!惊人!
所以,这是实验。
我问任何合适的人来帮助我解决这个问题。它只出现在IE9中。我想了解这种行为的原因。 Action类如何实现?它可以取决于鼠标驱动程序或类似的东西?在这种情况下,如果有问题,我使用无线鼠标,它有一个特殊的驱动程序。请帮帮我!
P.S.我试图改变我的鼠标设置,我的屏幕设置,但没有结果。
谢谢!
此致敬礼, Michael Kalygin。
哦,我的上帝!这是令人难以置信的,但看起来,这就是原因。我重新安装IE几次...我在看设置,并没有注意到它... 可能,IE默认设置为105%!注意,如果你在你的电脑上发现同样的问题! 非常感谢!你太棒了! :) P.S .:非常愚蠢......真的......对不起!所有的错误总是愚蠢的! :) – 2012-02-15 20:59:12
“错误总是愚蠢的” - 我的生活故事... :) – Anders 2012-02-15 21:06:25
它仍然可以在IE9下工作,即缩放级别较低。您必须执行以下代码:/ n
var service = InternetExplorerDriverService.CreateDefaultService(@"C:\SeleniumDrivers"); var options = new InternetExplorerOptions { IgnoreZoomLevel = true };
– Rishabh 2015-06-19 06:01:52