Safari 12中的硒元素位置

时间:2018-11-21 09:58:47

标签: c# selenium safari browserstack

我正在使用BrowserStack在包括Safari 11在内的各种设备/浏览器上运行Selenium测试,并且运行良好。我现在正尝试将Safari 12添加到测试中,但是由于一开始我就遇到了麻烦:

System.Collections.Generic.KeyNotFoundException: 'The given key was not present in the dictionary.'

当我尝试在第一个元素上获取位置时。当到达位置System.Drawing.Point时,以下内容将失败。

IWebElement element = this.Driver.FindElement(byLocator);
int x = element.Location.X;

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

        /* Safari Hack */
        int x;
        int y;
        try
        {
            x = element.Location.X;
        }
        catch (Exception)
        {
            x = ((OpenQA.Selenium.Remote.RemoteWebElement)element).LocationOnScreenOnceScrolledIntoView.X;
        }
        try
        {
            y = element.Location.Y;
        }
        catch (Exception)
        {
            y = ((OpenQA.Selenium.Remote.RemoteWebElement)element).LocationOnScreenOnceScrolledIntoView.Y;
        }