C# Webdriver未在正确的坐标处单击
我在一个响应性网站应用程序上进行C#测试时遇到困难。我有四个网站的可能性。这是同一代码的两个变体,但蒙皮不同,每个变体都会相应地调整大小。我的测试使用1024x768表示桌面,420x620表示移动设备。两个桌面测试都能完美地工作,但其中一个(只有一个)手机在尝试单击单选按钮时崩溃。我多次修改代码,试图找到解决方案,但都没有成功;总是三通一断。我最终使用以下代码来解决问题:C# Webdriver未在正确的坐标处单击,c#,selenium,C#,Selenium,我在一个响应性网站应用程序上进行C#测试时遇到困难。我有四个网站的可能性。这是同一代码的两个变体,但蒙皮不同,每个变体都会相应地调整大小。我的测试使用1024x768表示桌面,420x620表示移动设备。两个桌面测试都能完美地工作,但其中一个(只有一个)手机在尝试单击单选按钮时崩溃。我多次修改代码,试图找到解决方案,但都没有成功;总是三通一断。我最终使用以下代码来解决问题: public void ClickRadioButton() { By element =
public void ClickRadioButton()
{
By element = By.Id("radioButtonID");
IWebElement wait = WaitForElementToAppear(WebDriver, 5000, element);
int x = wait.Location.X;
int y = wait.Location.Y;
wait.Click();
}
断点位于wait.Click()并检查坐标值,wait.Location.X的值为52,wait.Location.Y的值为1596。这些坐标对于单选按钮的位置是正确的,但请稍候。单击()失败,并显示以下消息:
意外错误。元素在点(58,6)处不可单击。其他元素将收到单击:
我不明白为什么要等待。Click()正在使用这些坐标。基本上,它可以选择radiobutton,因为它可能是一个不可见的radiobutton,不再可见。如果您搜索多个单选按钮,在找到的所有单选按钮上启动单击事件,并为系统找到的所有单选按钮放置“错误处理程序”,其中一个单选按钮将单击您正在查找的单选按钮
此外,如果焦点正确,则应使用SendKeys(“\n”)事件替换.Click事件。是否可以共享正在使用的WaitForElementToAppear方法?作为快速更新,问题已确定为仅此一次呈现网页时,视口中没有单选按钮元素。它在视图顶部上方渲染,解释报告的y坐标。将元素引入视图的所有已知方法都不起作用。在元素click()处设置断点并手动将其置于视图中,然后前进成功,但下一个单选按钮失败。我正在继续对此进行研究,并希望提出一个解决方案,以帮助其他人在未来。作为一个快速更新,问题已确定为单选按钮元素不在视口中,仅用于此网页呈现。它在视图顶部上方渲染,解释报告的y坐标。将元素引入视图的所有已知方法都不起作用。在元素click()处设置断点并手动将其置于视图中,然后前进成功,但下一个单选按钮失败。我正在继续研究这一点,并希望提出一项决议,将有助于其他人在未来。