Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Webdriver未在正确的坐标处单击_C#_Selenium - Fatal编程技术网

C# Webdriver未在正确的坐标处单击

C# Webdriver未在正确的坐标处单击,c#,selenium,C#,Selenium,我在一个响应性网站应用程序上进行C#测试时遇到困难。我有四个网站的可能性。这是同一代码的两个变体,但蒙皮不同,每个变体都会相应地调整大小。我的测试使用1024x768表示桌面,420x620表示移动设备。两个桌面测试都能完美地工作,但其中一个(只有一个)手机在尝试单击单选按钮时崩溃。我多次修改代码,试图找到解决方案,但都没有成功;总是三通一断。我最终使用以下代码来解决问题: public void ClickRadioButton() { By element =

我在一个响应性网站应用程序上进行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。这些坐标对于单选按钮的位置是正确的,但请稍候。单击()失败,并显示以下消息:

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


我不明白为什么要等待。Click()正在使用这些坐标。

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


此外,如果焦点正确,则应使用SendKeys(“\n”)事件替换.Click事件。

是否可以共享正在使用的WaitForElementToAppear方法?作为快速更新,问题已确定为仅此一次呈现网页时,视口中没有单选按钮元素。它在视图顶部上方渲染,解释报告的y坐标。将元素引入视图的所有已知方法都不起作用。在元素click()处设置断点并手动将其置于视图中,然后前进成功,但下一个单选按钮失败。我正在继续对此进行研究,并希望提出一个解决方案,以帮助其他人在未来。作为一个快速更新,问题已确定为单选按钮元素不在视口中,仅用于此网页呈现。它在视图顶部上方渲染,解释报告的y坐标。将元素引入视图的所有已知方法都不起作用。在元素click()处设置断点并手动将其置于视图中,然后前进成功,但下一个单选按钮失败。我正在继续研究这一点,并希望提出一项决议,将有助于其他人在未来。