在不知道元素个数的情况下,完成页面所有元素的遍历

以上图这样一个选择企业页面为例,假设事先并不知道用户登录后会有几个企业供选择,但是case又需要遍历各个企业,保证各个企业均可正常被访问,那么就可以用红色标记的方式处理。

 

public class ChooseEnterprise {
  private WebDriver driver;
  private String baseUrl;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
 System.setProperty("webdriver.ie.driver", "C:\\Program Files (x86)\\Internet Explorer\\IEDriverServer.exe");  
 driver = new InternetExplorerDriver();
    baseUrl = "http://xx.xxx.cn/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testChooseEnterprise() throws Exception {
 
 int i = 1;
 int j = 1;
 String str = "";
 String strLast = "";
 
 //因为不知道需要打开的链接一共有多少个,所以使用while循环,始终给一个真值,直到条件满足跳出循环
 while(i!=0){  

  
  driver.get(baseUrl + "xx/xx/login.jsp");
  
  //判断是否成功进入登录页面
     try {
       assertEquals("使用手机帐号登录", driver.findElement(By.cssSelector("span.fontred2")).getText());
     } catch (Error e) {
       verificationErrors.append(e.toString());
     }
    
     driver.findElement(By.id("usersPhone")).clear();
     driver.findElement(By.id("usersPhone")).sendKeys("13800000000");
    
     driver.findElement(By.id("usersPassword")).clear();
     driver.findElement(By.id("usersPassword")).sendKeys("123456");
    
     driver.findElement(By.cssSelector("img")).click();
    
     //判断是否到达选择企业页面
     try {
       assertEquals("选择企业", driver.findElement(By.xpath("//h3")).getText());
     } catch (Error e) {
       verificationErrors.append(e.toString());
     }  
    
     //获取属性为class=qy_bg的div元素的值

     str = driver.findElement(By.xpath("(//div[@class='qy_bg'])["+i+"]")).getText();

    //获取属性为class=qy_bg的div最后一个元素的值
     strLast = driver.findElement(By.xpath("(//div[@class='qy_bg'])[last()]")).getText();
     
     driver.findElement(By.xpath("(//a[contains(text(),'"+str+"')])")).click();

                  
     
     //判断是否进入各企业主页
     try {
       assertEquals(str, driver.findElement(By.xpath("//p[2]")).getText());
     } catch (Error e) {
       verificationErrors.append(e.toString());
     }
    
     //点击进入个人中心的图标,进行退出操作
     driver.findElement(By.cssSelector("div.r_sz > a > img")).click();
     //检查是否了进入个人中心
     try {
       assertEquals("个人中心", driver.getTitle());
     } catch (Error e) {
       verificationErrors.append(e.toString());
     }
     //点击退出
     driver.findElement(By.linkText("退      出")).click();
     //检查是否成功退出
     try {
       assertEquals("欢迎登录网信", driver.findElement(By.cssSelector("p.fontred")).getText());
     } catch (Error e) {
       verificationErrors.append(e.toString());
     }
    
   

        //j可以统计出一共有多少个企业,供测试结果输出使用
        j = i;
     
        System.out.println(j);
        System.out.println(str);
       
        //当str的值等于strLast,表示已经到达最后一个链接,此时可跳出循环
        if(strLast.equalsIgnoreCase(str)){      
         break;
        }

       
        i++;
    }

  }

  @After
  public void tearDown() throws Exception {
    driver.quit();
  }
}

 

Python app自动化遍历页面元素是指使用Python编写一个应用程序,通过自动化脚本来遍历页面中的元素,实现对页面的自动化操作。 要实现这个目标,通常需要使用Python中的一些库和工具,如Selenium和BeautifulSoup等。Selenium是一个用于网页测试的工具,它能够模拟用户在浏览器中的操作,包括点击、输入、选择等。BeautifulSoup是一个用于解析HTML和XML文档的库,它能够方便地提取网页中的元素信息。 首先,我们需要使用Selenium启动一个浏览器窗口,可以是Chrome、Firefox或者其他浏览器。然后,通过输入网址,访问目标页面。接下来,使用BeautifulSoup将页面源代码转化为可操作的对象。然后,使用Selenium和BeautifulSoup的方法和函数来遍历页面元素。 对于页面元素遍历,有多种方法可以实现。一种常见的方式是使用XPath表达式来定位元素。XPath是一种用于在XML和HTML文档中选择节点的语言,它提供了很多灵活的选择方式,例如根据元素的ID、class、标签名等属性来选择元素。通过使用XPath表达式,我们可以很容易地定位到需要操作的页面元素。 在遍历页面元素的过程中,可以根据需求进行各种操作,例如点击按钮、输入文本、获取元素属性、截图等。可以将这些操作封装成函数或类,以便在需要的候调用。 总之,使用Python编写的应用程序可以通过自动化脚本来遍历页面元素,实现对页面的自动化操作。这样可以提高效率、减少人工操作,适用于各种需要对页面进行批量操作的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值