边缘浏览器中的元素被selenium模糊(服务器没有提供堆栈信息)自动化

mem*_*iya 8 selenium

org.openqa.selenium.WebDriverException:元素被遮挡(警告:服务器未提供任何堆栈跟踪信息).此代码适用于chrome和firefox,但不适用于边缘浏览器.

     `public class Login {
            public WebDriver driver;
            By userName = By.id("ctl14_UserName");
            By password = By.id("ctl14_Password");
            By login = By.id("ctl14_LoginButton");

            public Login(WebDriver driver) {
                this.driver = driver;
            }
            // Set password in username textbox
            public void setUserName(String strUserName) {   
                driver.findElement(userName).sendKeys(strUserName); 
            }
            // Set password in password textbox
            public void setPassword(String strPassword) {
                driver.findElement(password).sendKeys(strPassword);
            }
          public void clickMyaccount(){
               driver.findElement(myAccount).click();
            }
        // Click on login button
            public void clickLogin() {
                driver.findElement(login).click();

            }
        }
        //Test class
        public class AdminLogin extends BaseForDifferentLogins {
                 Login objLoginAdmin;
                 @Test(priority=0)
                    public void login() throws InterruptedException{
                      objLoginAdmin=new Login(driver); 
                      objLoginAdmin.clickMyaccount();
                        Thread.sleep(3000);
                        objLoginAdmin.setUserName("superuser1");
                        objLoginAdmin.setPassword("superuser1");
                        Thread.sleep(3000);
                        objLoginAdmin.clickLogin();
                        Thread.sleep(3000);
                    }
        }`
Run Code Online (Sandbox Code Playgroud)

Ami*_*'er 6

而不是使用的webElement.click() ,你可以尝试建立操作点击,并就执行.在Edge上有同样的问题,这对我有用:

Actions actions = new Actions(webDriver); actions.click(webElement).perform();


Min*_*ius 6

我遇到了这个问题并尝试了几个方法来解决它:

  • 启用EdgePageLoadStrategy.Normal - 没有帮助;
  • 禁用"保存密码?" 气泡.- 没有帮助;
  • 将缩放级别标准化为100% - 宾果/尤里卡.这解决了这个问题.

我的测试脚本更加注重性能,所以我不想添加额外的对象/功能/选项.如果您希望测试更易于部署,请将注册表编辑功能添加到您的selenium脚本中.这可以是一个启动器:http://www.winhelponline.com/blog/microsoft-edge-disable-zoom-reset-zoom-level-every-start/


小智 -1

即使我今天在 Edge 上运行测试时遇到了同样的问题,但是当我观察到问题时,在哪一步之后它失败了,只需检查一下,在该步骤之后给出 5 到 10 秒的时间延迟,通过这样做它解决了我的问题。我在程序的不同部分在 Edge 中运行时多次遇到相同的错误,我只是在所有这些步骤中添加了时间延迟,它解决了我的问题,现在测试成功在 EDGE 上运行。

我通过使用添加了延迟

Thread.sleep(5000);

试试这个,如果它不适合你,我找到了另一种解决方案,如果它在点击时失败,那就是使用javascript执行点击操作。

WebElement element = driver.findElement(By.id("gbqfd"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
Run Code Online (Sandbox Code Playgroud)

我从 https://softwaretestingboard.com/qna/363/word-around-for-edge-driver-click https://softwaretestingboard.com/qna/745/excpetion-selenium-webdriverexception-element-obscured获得了这个解决方案

第一个对我有用。