在使用webdriver前要先做下准备,1、下载相应的支持包,可以pom.xml文件引入 2、下载版本对应的浏览器驱动(我这里用的是chromedriver.exe),很多问题都是由于浏览器驱动引起的,所以这里一定要下载对应的版本。https://npm.taobao.org/mirrors/chromedriver/ 这里是下载地址

使用的时候 chrome浏览器总会弹出 开发者模式运行扩展程序提示 这样的提示,不胜其烦,有网友给出了解决办法,我也下载了 x64dbg_jb51.rar http://www.greenxf.com/soft/193321.html 工具,亲测有效,https://www.52pojie.cn/thread-695123-1-1.html 这里是破解方法,就不再详细说了。另外这个工具还有其他功能,有兴趣的可以多研究。

pom.xml文件引入selenium

  1. <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
  2. <dependency>
  3. <groupId>org.seleniumhq.selenium</groupId>
  4. <artifactId>selenium-server</artifactId>
  5. <version>3.9.0</version>
  6. </dependency>
  7.  
  8. <dependency>
  9. <groupId>org.seleniumhq.selenium</groupId>
  10. <artifactId>selenium-chrome-driver</artifactId>
  11. <version>3.11.0</version>
  12. </dependency>

然后就可以运行以下代码,写的比较粗糙,另外还有by.xpath功能,可以自行查找使用。 这里提供了相关示例操作。https://blog.csdn.net/tianjing222/article/details/79051221

  1. import org.openqa.selenium.By;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.WebElement;
  4. import org.openqa.selenium.chrome.ChromeDriver;
  5.  
  6. /**
  7. * Created by song on 2019-01-02.
  8. */
  9. public class WebDriverUseChrome {
  10.  
  11. public static void main(String args[]){
  12.  
  13. System.setProperty("webdriver.chrome.driver", "E:\\python\\chromedriver_win32\\70\\chromedriver.exe");
  14.  
  15. WebDriver driver = new ChromeDriver();
  16.  
  17. try {
  18. Thread.sleep(10000);
  19. driver.get("https://www.baidu.com");
  20. driver.getTitle();
  21. WebElement wd = driver.findElement(By.id("kw"));
  22. WebElement login = driver.findElement(By.id("su"));
  23. wd.sendKeys("webdriver");
  24. login.click();
  25. Thread.sleep(10000);
  26. //得到浏览器的标题
  27. System.out.println(driver.getTitle());
  28. } catch (InterruptedException e) {
  29. e.printStackTrace();
  30. }
  31. //关闭浏览器 下面是关闭所有标签页,还有一个代码是 driver.close();, 关闭当前标签页
  32. driver.quit();
  33. }
    }

python 调用webdriver更加简单,我这里用的是python3 ,使用前先要使用 pip 安装 selenium ,并将chromedriver.exe 放到python的安装目录下,我这里是D:\tools\Python34

  1. #! /usr/bin/python
  2. # -*- coding:utf-8 -*-
  3.  
  4. from selenium import webdriver
  5. import time
  6.  
  7. driver = webdriver.Chrome()#加载chrome驱动
  8.  
  9. driver.get("https://www.baidu.com");
  10. driver.find_element_by_id("kw").send_keys("python webdriver");#根据按钮获取文本框,并输入值
  11. driver.find_element_by_id("su").click();#获取按钮并点击
  12.  
  13. print(driver.title)#获取页面title
  14. time.sleep(5)#延时5
  15. print(driver.title)
  16. print(driver.find_element_by_xpath(".//*[@id='1']").text)#使用xpath用匹配的方式获取id下面的内容
  17. print(driver.find_element_by_xpath("html/body/div/div[5]/div/div[3]/div/h3/a").text)#根据xpath获取指定标签下面的内容
  18. driver.close()#关闭页面

下面为执行结果

webdriver 的使用 java 和python 两个版本的更多相关文章

  1. Ubuntu下python两个版本的切换

    最近在Ubuntu16.04安装了python3.5还有系统自带的python2.7.13,总结一下不同版本的切换问题. alias:别名 bashrc:个人配置文件 一.修改Python版本(针对用 ...

  2. 给大家分享下坐标转换的代码的JS和Python两个版本的源码【转】

    /** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换 */ /** * 百度 ...

  3. Java or Python?测试开发工程师如何选择合适的编程语言?

    很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...

  4. 代码行数统计的Java和Python实现

    通过编写程序来统计文件的行数,可以在巩固文件IO知识的同时计算出自己的代码量,以下分别提供Java和Python实现的版本. 解决思路 两种版本的思路几乎相同,每一个文件夹(目录)内的行数都是其所有子 ...

  5. java调用python脚本并向python脚本传递参数

    1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...

  6. Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)

    selenium操作chrome浏览器需要有ChromeDriver驱动来协助.webdriver中关浏览器关闭有两个方法,一个叫quit,一个叫close. 1 /** 2 * Close the ...

  7. windows、ubuntu下eclipse搭建java、Python环境问题总结

    前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...

  8. windows 下用eclipse搭建java、python开发环境

    本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...

  9. paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结

    paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结 #两个思路 1.思路如下:使用file_get_contents()获取txt文件的内容,然后通过 ...

随机推荐

  1. 修改apache2配置,禁止目录访问+禁止访问.git文件夹

    通过url访问服务器,无论是本地服务器还是远程服务器 如果你的文件根目录里有 index.html,index.php,浏览器就会显示 index.html的内容,如果没有 index.html,浏览 ...

  2. CentOS7修改计算机名!

    https://www.cnblogs.com/acgpiano/p/4170546.html sudo hostnamectl set-hostname <host-name>

  3. PropertyInfo、FieldInfo、MemberInfo的区别

    public class TestClass { ;//私有一律获取不到 public int b { ; } ; } } ; } public static void TestMethod() { ...

  4. douyu danmu test c#

    using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Text.Regul ...

  5. hibernate更新

    1.使用对象更新 public void updateImagePath(Weibo weibo){ Session session = HibernateUtil.currentSession(); ...

  6. TField中的GetText和SetText

    在数据表中的某些字段出于性能或数据规范化的考虑,会用组编号代替,就像学生有学号,员工有员工ID一样,但我们看的时候如果直接输入这样的编号看的人可能就会头痛了,这时就可用TField中的GetText转 ...

  7. Linux安装python3.6 和pip

    Linux下安装Python3.6和第三方库   如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!! ...

  8. 【MM系列】SAP 客户增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 客户增强   前言部分 大家 ...

  9. tensorflow2.0 numpy.ndarray 与tenor直接互转

    1.代码参考 import numpy as npimport tensorflow as tf a = np.random.random((5,3)) b = np.random.randint(0 ...

  10. .net core 学习小结之 JWT 认证授权

    新增配置文件 { "Logging": { "IncludeScopes": false, "Debug": { "LogLeve ...