博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于getCurrentUrl的获取问题
阅读量:6438 次
发布时间:2019-06-23

本文共 4939 字,大约阅读时间需要 16 分钟。

hot3.png

代码如下

package selenium_Test;import org.openqa.selenium.*;import org.openqa.selenium.firefox.*;import org.openqa.selenium.WebDriver.*;public class Collection {    public static void main (String args[]) throws Exception    {        System.setProperty("webdriver.firefox.bin", "E:\\software\\firefox\\firefox.exe");        WebDriver driver=new FirefoxDriver();        driver.navigate().to("http://www.jd.com");                System.out.println("检查是否进入京东首页:"+driver.getCurrentUrl().equals("http://www.jd.com/"));        driver.findElement(By.id("key")).sendKeys("2269");        driver.findElement(By.className("button")).click();        System.out.println("检查搜索页面是否跳转正确:"+driver.getCurrentUrl().equals("http://search.jd.com/Search?keyword=2269&enc=utf-8"));        driver.findElement(By.partialLinkText("AOC I2269VW 21.5英寸LED背光超窄边框IPS广视角液晶显示器(银色)")).click();        System.out.println("检查是否进入之前选择的商品页面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));//        System.out.println("检查商品价格是否准确:"+driver.findElement(By.id("jd-price]")).getText().contains("¥869.00"));                driver.quit();            }}

执行结果:

检查是否进入京东首页:true检查搜索页面是否跳转正确:true检查是否进入之前选择的商品页面:false

问题描述请看博客摘要

解决方案一(他人给予,科学的方法):

package com.TestNG.Selenium;import java.util.Iterator;import java.util.Set;import org.openqa.selenium.*; import org.openqa.selenium.firefox.*; import org.openqa.selenium.WebDriver.*; public class a23 {     public static void main (String args[]) throws Exception        {                 System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");            WebDriver driver=new FirefoxDriver();            driver.navigate().to("http://www.jd.com ");                System.out.println("检查是否进入京东首页:"+driver.getCurrentUrl().equals("http://www.jd.com/"));           driver.findElement(By.id("key")).sendKeys("2269");          driver.findElement(By.className("button")).click();         System.out.println("检查搜索页面是否跳转正确:"+driver.getCurrentUrl().equals("http://search.jd.com/Search?keyword=2269&enc=utf-8"));         driver.findElement(By.partialLinkText("AOC I2269VW 21.5英寸LED背光超窄边框IPS广视角液晶显示器(银色)")).click();     Thread.sleep(2000);    driver=switchWindow(driver,"【AOCI2269VW】AOC I2269VW 21.5英寸LED背光超窄边框IPS广视角液晶显示器(银色)【行情 报价 价格 评测】-京东");    Thread.sleep(5000);    String url1=driver.getCurrentUrl();    System.out.println(url1);    System.out.println("检查是否进入之前选择的商品页面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));     //        System.out.println("检查商品价格是否准确:"+driver.findElement(By.id("jd-price]")).getText().contains("¥869.00"));                 driver.quit();               } }     }    //使用这个。 函数是:switch window    private static WebDriver switchWindow(WebDriver dr,String winTitle){        String currentHandle =dr.getWindowHandle();//获取当前浏览器窗口标识                Set
 handles=dr.getWindowHandles();        for(String handle:handles){  //获取所有浏览器窗口标识            if(handle.equals(currentHandle))                continue;            else{                dr.switchTo().window(handle);                if(dr.getTitle().contains(winTitle)){                    break;                }else                    continue;            }        }                     return dr;      }  }

执行结果如下:

检查是否进入京东首页:true检查搜索页面是否跳转正确:truehttp://item.jd.com/845638.html检查是否进入之前选择的商品页面:true

解决方案二(自己瞎弄的,居然还成功了):

package com.TestNG.Selenium;import org.openqa.selenium.*;import org.openqa.selenium.firefox.*;import org.openqa.selenium.WebDriver.*;public class Collection {    public static void main (String args[]) throws Exception    {        System.setProperty("webdriver.firefox.bin", "D:\\软件\\浏览器\\firefox\\firefox.exe");        WebDriver driver=new FirefoxDriver();        driver.navigate().to("http://www.jd.com");                System.out.println("检查是否进入京东首页:"+driver.getCurrentUrl().equals("http://www.jd.com/"));        driver.findElement(By.id("key")).sendKeys("2269");        driver.findElement(By.className("button")).click();                System.out.println("检查搜索页面是否跳转正确:"+"http://search.jd.com/Search?keyword=2269&enc=utf-8".equals(driver.getCurrentUrl()));        //重点在这里,跑一边,句柄无法捕捉,但是跑2遍就会被捕捉(看来系统也是关爱努力的人的,玩笑。。)        driver.findElement(By.partialLinkText("AOC I2269VW 21.5英寸LED背光超窄边框IPS广视角液晶显示器(银色)")).click();        driver.findElement(By.partialLinkText("AOC I2269VW 21.5英寸LED背光超窄边框IPS广视角液晶显示器(银色)")).click();                String[] handle=new String[driver.getWindowHandles().size()];        driver.getWindowHandles().toArray(handle);        System.out.println("打开了"+handle.length+"个网页");        driver.switchTo().window(handle[2]);                System.out.println("检查是否进入之前选择的商品页面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));        driver.quit();    }}

执行结果如下:

检查是否进入京东首页:true检查搜索页面是否跳转正确:true打开了3个网页检查是否进入之前选择的商品页面:true

良言:希望众位能使用第一种方法,毕竟第二张是我瞎弄的,我不能保证将来不出错,而第一种,目前,大家都在使用。

转载于:https://my.oschina.net/Early20/blog/363303

你可能感兴趣的文章
主流or消亡?2016年大数据发展将何去何从
查看>>
《大数据分析原理与实践》一一第3章 关联分析模型
查看>>
《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程
查看>>
Capybara 2.14.1 发布,Web 应用验收测试框架
查看>>
ExcelJS —— Node 的 Excel 读写扩展模块2
查看>>
《数字短片创作(修订版)》——第一部分 剧本创作 第1章 数字短片创意技法 剧本创作的构思...
查看>>
MIT 学生挑战新泽西索取挖矿程序源代码的要求
查看>>
实践 | 不同行业WMS选型策略及需要注意的一些问题
查看>>
MaxCompute与OSS非结构化数据读写互通(及图像处理实例)
查看>>
【F3简介】一张图看懂FPGA-F3实例
查看>>
bash环境(变量与bash配置文件)
查看>>
Server Hard drive mode
查看>>
smb服务器配置过程遇到错误及解决
查看>>
java杂乱
查看>>
在Linux上安装Python3.6.1
查看>>
[基础]iOS 可视化编程(全系列)
查看>>
我的友情链接
查看>>
LVS之NAT模型配置实验
查看>>
nginx 报错 99: Cannot assign requested address
查看>>
几种流行的AJAX框架:jQuery,Mootools,Dojo,Ext JS的对比
查看>>