经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
元素同步问题解决----自定义类
来源:cnblogs  作者:炒酷酷  时间:2018/9/25 19:34:26  对本文有异议

在自动化测试脚本开发过程中,很大部分的报错是由于元素因为时间不同步而产生的。本文总结了用自定义的类库来解决元素同步问题。

首先,新建一个自定义的类方法,对它进行编码。

package first;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

public class MyWait {

 

    public  static WebElement isElementPresent(WebDriver driver,String xpath,int time)

    {

       WebElement element=null;

      

       for(int i=0;i<time;i++)

       {

           try {

              element=driver.findElement(By.xpath(xpath));

              break;

           } catch (Exception e) {

                try {

                  Thread.sleep(1000);

              } catch (InterruptedException e2) {

                  System.out.println("Waiting for the element to appear");

              }

 

           }

       }

       return element;

    }

 

}

在另外一个包下新建一个测试类,测试调用类方法。

package Test;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import first.MyWait;

public class MyTest {

public static void main(String[] args) {

    WebDriver driver=new FirefoxDriver();

    driver.manage().window().maximize();

    driver.get("https://www.apache.org/");

    driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

    System.out.println(MyWait.isElementPresent(driver, ".//*/section[@class='bg-gray']/div/div/div[3]/h3", 10).getText());

}

}

 

根据元素xpath去定位元素,在10秒之内不断循环去定义该元素,如果在页面出现,就可以定位成功,否则抛出异常。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号