Webdriver不会单击正确的坐标

时间:2016-01-22 20:35:05

标签: c# selenium

我在响应式网站应用程序上遇到C#测试困难。我有四个网站的可能性。这些是相同代码的两个变体,但皮肤不同,每个变体都会相应地调整大小。我的测试使用代表桌面的1024x768和代表移动设备的420x620。两个桌面测试都可以完美运行,但是在尝试单击单选按钮时,只有一个(仅一个)移动设备崩溃。为了找到一个没有成功的解决方案,我多次修改我的代码;总是,三通,但一个手机崩溃。我最终使用以下代码来解决问题:

   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.这些坐标对于收音机的位置是正确的按钮但wait.click()失败并显示消息:

意外错误。在点(58,6)处不能点击元素。其他元素将收到点击:

我不明白为什么wait.Click()正在使用这些坐标。

1 个答案:

答案 0 :(得分:0)

基本上,它可以选择radiobutton,因为它可能是一个不再可见的不可见的无线电按钮。如果您搜索多个单选按钮,请在找到的所有单选按钮上启动单击事件,并为系统找到的所有单选按钮设置“错误处理程序”,其中一个将单击您要查找的单选按钮。

此外,如果焦点是正确的,那么您应该使用SendKeys(“\ n”)事件替换.Click事件。