关于getCurrentUrl的获取问题
2019独角兽企业重金招聘Python工程师标准>>>
代码如下
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 windowprivate static WebDriver switchWindow(WebDriver dr,String winTitle){String currentHandle =dr.getWindowHandle();//获取当前浏览器窗口标识Set<String> handles=dr.getWindowHandles();for(String handle:handles){ //获取所有浏览器窗口标识if(handle.equals(currentHandle))continue;else{dr.switchTo().window(handle);if(dr.getTitle().contains(winTitle)){break;}elsecontinue;}} return dr; }
}
执行结果如下:
检查是否进入京东首页:true
检查搜索页面是否跳转正确:true
http://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
关于getCurrentUrl的获取问题相关推荐
- Magento 获取当前店铺信息(首页,类别,地址等)
众所周知,Magento的多店铺功能非常强大,通过多店铺功能,我们可以在一个Magento应用当中创建在外观上看来完全不相关联的多个店铺,并且可以绑定不同的域名.在Magento的开发当中,经常需要获 ...
- Magento获取当前页面URL地址
Magento获取当前页面URL地址 http://www.sunhaibing.com/?p=1260 在Magento中,可以通过core/url助手类中的getCurrentUrl()方法获取当 ...
- 预见自动化测试 | 基于 SELENIUM 的自动化测试架构
基于 SELENIUM 的自动化测试架构 非常感谢各位查阅本篇文章,笔者在此感谢各位. 目前市面上有分门别类的自动化测试工具,这篇文章将讨论开源自动化测试工具 Selenium的使用,以及围绕该工具进 ...
- selenium常用命令之操作页面元素及获取元素内容的事件整理
/**id <input type="text" id="phone" name="phone" class="LoginT ...
- 获取PHP中的完整URL
我使用以下代码来获取完整的URL: $actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; 问题是我在.htacces ...
- Java自动化获取页面主题_基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍
1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...
- magento block 程序中获取各种url及绝对路径的方法
magento block 程序中获取各种url的方法 Mage::getBaseUrl('media') //可获得 media 带 http 的url 地址.//同理也可以获得skin 和js 目 ...
- 使用Selenium获取银行账户余额
银行卡很多,每次查看余额多要进入每个银行网站进行查看,于是就想到如何通过程序自动获取,网上查了些资料,一般用selenium做自动化测试,然后就学了下selenium,写了建行.招行.平安.陆金所,不 ...
- php获取公众号微信用户信息
error_reporting(1); header('Content-type:text/html; Charset=utf-8'); /* 配置开始 */ $appid = ''; //微信公众平 ...
最新文章
- 局域网共享文件夹设置
- DevExpress的TreeList怎样设置数据源,从实例入手
- html5 can,微软想要从HTML5中分离Can
- c语言单元测验,C语言程序设计单元测验一.PDF
- oracle的本地安装和PUTTY+XMING远程连接安装和oracle翻页功能
- 开挂的人生: 本科生发Nature和 Science
- ajax方式表单拦截
- 新时代、新挑战、新机遇
- List集合操作二:排序
- webflux解决get请求中文乱码问题
- mysql护眼参数,VS2013设置护眼背景颜色
- 2019年个人所得税计算机模板,2019年最新个税计算Excel模版,人手一份!
- 三极管工作原理及测定
- vue全局引入openlayers_vue+openlayers绘制省市边界线
- python3爬虫(4)各种网站视频下载方法
- oppo怎么广告接入_OPPO广告分模块投放的正确打开方式
- Designing Websites for Performance 如何设计高性能网站 Lynda课程中文字幕
- 使用XMAPP启动MySQL出现Error: MySQL shutdown unexpectedly 的解决办法
- 一步一步构建量化交易系统
- 实例011阳阳买苹果 阳阳买苹果,每伞苹果0.8元,阳阳第一天买两个苹果,第二天开始每天买前一天的两倍, 直到购买的苹果个数为不超过100的最大值, 编程求阳阳每天平均花多少钱?