Selenium兼容性问题注意

本文详细介绍了在使用Selenium进行自动化测试时,遇到Chrome和Safari页面跳转和元素加载问题的解决方法。包括等待元素加载、验证跳转URL一致性、处理页面跳转后的弹框等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不知道是selenium兼容做的不好,还是浏览器自身运行速度和解析的关系,每次项目在chrome上跑得时候没有问题,可以到chrome和safari上就有很多问题出现。下面一一总结出现的问题以及解决方案。


1、当页面跳转后,防止jquery ajax等事件未加载出需要操作的元素时,可以使用下面代码控制元素出现后再执行操作。

public static void waitForPage(WebDriverWait wait, By by) {
        wait.until(ExpectedConditions.presenceOfElementLocated(by));
    }


2、当页面在chrome上跳转时,验证跳转的url是否和excepted的url一致时,会出现运行过快url判断还停留在上一个url的问题。

/**
     * set i=50 (one is 100 millseconds) represent 5 seconds
     * @param url expected url
     */
    public static void pageload(String url){
        WebDriver driver = new IndexPage().getDriver();
        int i=0;
        while(i < 50) {
            i++;
            if(driver.getCurrentUrl().equals(url)) {
                break;
            } else {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }


3、当在chrome上运行弹框时,会出现如下错误:NoSuchAlertError: no alert open,解决方案可能有的人在Alert之前sleep一秒,但是我觉得这样做是不正确的,正确的做法如下:

public static void waitForAlert(WebDriverWait wait) {
        wait.until(ExpectedConditions.alertIsPresent());
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值