首先为了方便起见,我们需要设置一些路径
这里需注意:chrome和chromedriver的版本一定要对应
也可以使用System.setProperty(“webdriver.chrome.driver”, “.......”);
(这个本人未尝试)
每进行一个操作需要设置反应时间
Thread.sleep(2000);
打开网址
driver.get();
查找元素
driver.findElement(By.xpath());
点击
driver.findElement(By.xpath()).click();
输入文字
driver.findElement(By.xpath()).sendKeys();
带有frame的页面
下切换frame时都需要返回默认再重新进入
driver.switchTo().defaultContent();
driver.switchTo().frame(“leftFrame”);
如果frame下面有frame则继续
driver.switchTo().frame();
切换frame时可不用设置反应时间
在自己打开百度的时候无法打开网站,但是其他的网站可以打开,通过请教老师,发现是因为自己的浏览器版本不对,所以一定要注意版本
输入回车键
driver.findElement(By.xpath()).sentKeys(Keys.ENTER);
注意注意
找xpath一定要找按钮的,而不是输入框的
涉及到弹出框,可参考selenium对弹出框的解决
如何只是要求手动解决
设置一下反应时长就OK了
返回上一页面
driver.navigate().back();
关闭当前页面
driver.close();
窗口最大化
driver.manage().window().maximize();
关于选框的内div还是外div需要不断的尝试
有时候分数不够一百分,可能是下拉框的选择方式不对,有时候点字,有时候点三角
2021-10-27更新
执行JS操作
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; jsExecutor.executeScript("document.getElementById('js_domestic_fromdate').value = '2021-10-30'");
开启的时候可以使用隐形等待
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS)
在选着有svg的时候,要用外层的div
窗口不变,网址要改变的时候,选着带href的
切换窗口
String homeHandle() = driver.getWindowHandle();
//这里要有一个click
Set<String> windowHandles = driver.getWindowHandles();
for(String handle : windHandles){
if(!handle.equals(homeHandle)){
driver.switchTo().window(handle);
break;
}
}
第二种写法
String page1=driver.getWindowHandle();
String page2=null;
Set<String> handles = driver.getWindowHandles();
for(String handle:handles){
if(handle.equals(page1){
continue;
}
page2=handle;
break;
}
driver.switchTo().window(page2);
Set<String> usedHandles=driver.getWindowHandles();
String page3=null;
handles=driver.getWindowHandles();
for(String handle:handles) {
if(usedHandles.contains(handle)) {
continue;
}
page3=handle;
break;
}
driver.switchTo().window(page3);
usedHandles=driver.getWindowHandles();