问答 [web UI] 用户名、密码消失了

在路上 · 2018年06月05日 · 最后由 在路上 回复于 2018年06月06日 · 2210 次阅读
问题描述:

进入登录页后,输入用户名、密码,点击 “登录” 的时候,用户名和密码消失了。

出现情况

偶尔出现这个情况,有人碰到过吗?

代码如下:

public void login() throws InterruptedException {
        String homepageURL = avatarDriver.getPageURL("homePage");
        open(homepageURL);
        Thread.sleep(3000);
//        刷新页面
//        driver.navigate().refresh();
        SelenideElement loginStatus = avatarDriver.page("homePage").element("loginStatus");
        String loginStatusStr = loginStatus.toString();
        if (loginStatusStr.contains("登录")) {
            System.out.println("用户还未登录,马上登录");
            //点击首页的登录按钮,进入登陆页
            avatarDriver.page("homePage").element("loginButton").click();

        } else {
            System.out.println("用户已登录,退出后,重新登录");
            //点击退出,退出登录
            avatarDriver.page("loginPage").element("loginOut").click();
            //点击首页的登录按钮,进入登陆页
            avatarDriver.page("homePage").element("loginButton").click();
        }
        String loginname = avatarDriver.getLoginname();
        String password = avatarDriver.getPassword();
        //输入用户名
        avatarDriver.page("loginPage").element("loginname").sendKeys(loginname);
        //输入密码
        avatarDriver.page("loginPage").element("password").sendKeys(password);
        Thread.sleep(3000);
       //注意:点击登录按钮,进行这一步的时候,用户名和密码消失了
        SelenideElement loginButton = avatarDriver.page("loginPage").element("loginButton");
        System.out.println(loginButton.toString());
        loginButton.click();
        //页面刷新
        driver.navigate().refresh();
        //检查"生态品类"元素是否存在
        avatarDriver.page("homePage").element("fonticonMenu").exists();
    }
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
最佳回复

该问题已经解决了,咨询同事解决的。
问题出现原因:至今不清楚
解决方法:操作 JS

public void findelByJs(WebDriver driver, String action, SelenideElement element) {
        JavascriptExecutor js=(JavascriptExecutor)driver;
        js.executeScript(action,element);
    }

JS 的点击操作:

avatarDriver.findelByJs(driver,"arguments[0].click()", loginButton);
共收到 4 条回复 时间 点赞

该问题已经解决了,咨询同事解决的。
问题出现原因:至今不清楚
解决方法:操作 JS

public void findelByJs(WebDriver driver, String action, SelenideElement element) {
        JavascriptExecutor js=(JavascriptExecutor)driver;
        js.executeScript(action,element);
    }

JS 的点击操作:

avatarDriver.findelByJs(driver,"arguments[0].click()", loginButton);

拿了个假的账号,一点登录就出现 输入验证码的框

loginButton.click();
//页面刷新
driver.navigate().refresh();

是否点击完马上执行了下面的刷新,所以原来输入的用户名密码被重置为空了

Jerry li 回复

不是,我用 debug 做断言了,刷新前,点击登录按钮就清空

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册