selenium webdriver学习,选择模块,点击下一页,获取当前url

查找下一页有多种方法,这里列举两种;

isSelected()函数用于判断是否点击选中,返回Boolean类型

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; import java.util.List; import com.thoughtworks.selenium.Wait.WaitTimedOutException; public class YsfTest_20180720 { //主方法
public static void main(String[] args) throws InterruptedException{
//加载驱动器
System.setProperty("webdriver.chrome.driver","C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe");
//打开浏览器
WebDriver driver = new ChromeDriver();
//打开网站
driver.get("https://edu.csdn.net/");
//选择模块,linktext就是链接文本,我们可以通过linktext来查找元素
WebElement searchBox = driver.findElement(By.linkText("课程"));
//点击该模块
searchBox.click();
//选择下一页模块,通过css选择器来定位元素,查找下一页按钮
WebElement searchNext = driver.findElement(By.cssSelector("a[class='btn btn-xs btn-default btn-next']"));
//查找下一页的第二种写法
//WebElement searchNext = driver.findElement(By.cssSelector(".btn.btn-xs.btn-default.btn-next"));
//查看该元素是否被选中,如果没有被选中,则点击选中
if(!searchNext.isSelected()){
//翻一页
searchNext.click();
}
//等待5s
Thread.sleep(5000);
//去当前url
String current_url = driver.getCurrentUrl();
System.out.println(current_url);
//关闭窗口
driver.close();
}
}

本例主要用到:通过linktext来查找元素

(java)selenium webdriver学习,选择模块,点击下一页,获取当前url的更多相关文章

  1. (java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待

    selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java. ...

  2. (java)selenium webdriver学习--打开新窗口,并判断新窗口是否与目标窗口一致

    描述:selenium webdriver学习--打开新窗口,并判断新窗口是否与目标窗口一致,若一致则切换到该窗口并获取标题 跳出if判断,获取父级标题,并关闭 HTML标签不太明显时,可以用路径表示 ...

  3. (java)selenium webdriver学习--通过id、name定位,输入内容,搜索,关闭操作、通过tagname查找元素

    selenium webdriver学习--通过id.name定位,输入内容,搜索,关闭操作:通过tagname查找元素 打开谷歌浏览器,输入不同的网站,搜索框的定位含有不同元素(有时为id,有时为n ...

  4. (java)selenium webdriver学习---实现简单的翻页,将页面内容的标题和标题链接取出

    selenium webdriver学习---实现简单的翻页,将页面内容的标题和标题链接取出: 该情况适合能能循环page=1~n,并且每个网页随着循环可以打开的情况, 注意一定是自己拼接的url可以 ...

  5. Java+Selenium 上传文件,点击选择“浏览文件”按钮,报错invalid argument

    Java+Selenium 上传文件,点击选择"浏览文件"按钮,报错invalid argument 解决代码: Actions action=new Actions(driver ...

  6. selenium webdriver学习(四)------------定位页面元素(转)

    selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElemen ...

  7. Selenium webdriver 学习总结-元素定位

    Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要 ...

  8. selenium webdriver学习(六)------------如何得到弹出窗口

    selenium webdriver学习(六)------------如何得到弹出窗口 在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理 ...

  9. selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面(转)

    selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 博客分类: Selenium-webdriver 元素拖放drag and drop  Q群里 ...

随机推荐

  1. python基础教程(2)

    Python 基础教程 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言. 执行Python程序 对于大多数程序语言,第一个入门编程代码便是 "Hello World!& ...

  2. kubelet tls

    当成功签发证书后,目标节点的 kubelet 会将证书写入到 --cert-dir= 选项指定的目录中:此时如果不做其他设置应当生成上述除ca.pem以外的4个文件 kubelet-client.cr ...

  3. 向php数组函数array_colum()传入奇怪的数组

    <?php // 向php数组函数array_colum()传入奇怪的数组 // array_colum()函数 返回行列数组的其中一列,可以用其他列的键充当键 $arr = [ [ 1, 2, ...

  4. mysql网文收录

    1.分布式事务 1)  聊聊分布式事务,再说说解决方案 https://www.cnblogs.com/savorboard/p/distributed-system-transaction-cons ...

  5. python多线程爬取世纪佳缘女生资料并简单数据分析

    一. 目标 ​ 作为一只万年单身狗,一直很好奇女生找对象的时候都在想啥呢,这事也不好意思直接问身边的女生,不然别人还以为你要跟她表白啥的,况且工科出身的自己本来接触的女生就少,即使是挨个问遍,样本量也 ...

  6. backpropagation algorithm

    搞卷积神经网络的时候突然发现自己不清楚神经网络怎么训练了,满脸黑线,借此机会复习一下把. 首先放一位知乎大佬的解释.https://www.zhihu.com/question/27239198?rf ...

  7. Matlab单例模式

    classdef SingletonClass < handle methods(Access = private) function obj = SingletonClass() disp(' ...

  8. js(es6)数组去重

    // 利用set.reduce.filter去重 // Set function getSetArr(arr) { return [...new Set(arr)] } console.log(get ...

  9. python+selenium爬取关键字搜索google图片

    # -*- coding: utf-8 -*- import json import os import time from multiprocessing import Pool import mu ...

  10. RabbitMQ实战场景(一):异步记录用户操作日志

    传统的项目开发中业务流程以串行方式,执行了模块1—>模块2–>模块3 而我们知道,这个执行流程其实对于整个程序来讲是有一定的弊端的,主要有几点: (1)整个流程的执行响应等待时间比较长; ...