我正在使用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;
如何解决这个问题?
答案 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;
}