webdriver 的使用 java 和python 两个版本
在使用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
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.9.0</version>
</dependency> <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.11.0</version>
</dependency>
然后就可以运行以下代码,写的比较粗糙,另外还有by.xpath功能,可以自行查找使用。 这里提供了相关示例操作。https://blog.csdn.net/tianjing222/article/details/79051221
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; /**
* Created by song on 2019-01-02.
*/
public class WebDriverUseChrome { public static void main(String args[]){ System.setProperty("webdriver.chrome.driver", "E:\\python\\chromedriver_win32\\70\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); try {
Thread.sleep(10000);
driver.get("https://www.baidu.com");
driver.getTitle();
WebElement wd = driver.findElement(By.id("kw"));
WebElement login = driver.findElement(By.id("su"));
wd.sendKeys("webdriver");
login.click();
Thread.sleep(10000);
//得到浏览器的标题
System.out.println(driver.getTitle());
} catch (InterruptedException e) {
e.printStackTrace();
}
//关闭浏览器 下面是关闭所有标签页,还有一个代码是 driver.close();, 关闭当前标签页
driver.quit();
}
}
python 调用webdriver更加简单,我这里用的是python3 ,使用前先要使用 pip 安装 selenium ,并将chromedriver.exe 放到python的安装目录下,我这里是D:\tools\Python34
#! /usr/bin/python
# -*- coding:utf-8 -*- from selenium import webdriver
import time driver = webdriver.Chrome()#加载chrome驱动 driver.get("https://www.baidu.com");
driver.find_element_by_id("kw").send_keys("python webdriver");#根据按钮获取文本框,并输入值
driver.find_element_by_id("su").click();#获取按钮并点击 print(driver.title)#获取页面title
time.sleep(5)#延时5秒
print(driver.title)
print(driver.find_element_by_xpath(".//*[@id='1']").text)#使用xpath用匹配的方式获取id下面的内容
print(driver.find_element_by_xpath("html/body/div/div[5]/div/div[3]/div/h3/a").text)#根据xpath获取指定标签下面的内容
driver.close()#关闭页面
下面为执行结果

webdriver 的使用 java 和python 两个版本的更多相关文章
- Ubuntu下python两个版本的切换
最近在Ubuntu16.04安装了python3.5还有系统自带的python2.7.13,总结一下不同版本的切换问题. alias:别名 bashrc:个人配置文件 一.修改Python版本(针对用 ...
- 给大家分享下坐标转换的代码的JS和Python两个版本的源码【转】
/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换 */ /** * 百度 ...
- Java or Python?测试开发工程师如何选择合适的编程语言?
很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...
- 代码行数统计的Java和Python实现
通过编写程序来统计文件的行数,可以在巩固文件IO知识的同时计算出自己的代码量,以下分别提供Java和Python实现的版本. 解决思路 两种版本的思路几乎相同,每一个文件夹(目录)内的行数都是其所有子 ...
- java调用python脚本并向python脚本传递参数
1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...
- Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
selenium操作chrome浏览器需要有ChromeDriver驱动来协助.webdriver中关浏览器关闭有两个方法,一个叫quit,一个叫close. 1 /** 2 * Close the ...
- windows、ubuntu下eclipse搭建java、Python环境问题总结
前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...
- windows 下用eclipse搭建java、python开发环境
本人只针对小白!本文只针对小白!本文只针对小白! 最近闲来无事,加上之前虽没有做过eclipse上java.python的开发工作,但一直想尝试一下.于是边查找资料边试验,花了一天时间在自己的机器上用 ...
- paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结
paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结 #两个思路 1.思路如下:使用file_get_contents()获取txt文件的内容,然后通过 ...
随机推荐
- springboot(一).初识springboot以及基本项目搭建
初识springboot 以及基本项目搭建 由于新的项目需要搭建后台框架,之前的springmvc架构也使用多次,在我印象中springboot的微服务架构更轻量级更容易搭建,所以想去试试spring ...
- Card Game Cheater
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- mvn deploy上传私服Nexus时遇到的坑--ReasonPhrase: Forbidden.
用maven deploy上传jar包时,遇到了ReasonPhrase: Forbidden 错误,截图如下: 折腾了好久,终于解决,现把步骤简单记录如下: 1.自建仓库eagle-sky: 2.设 ...
- layui table指定某一行样式
1.想指定layui table中某一行的样式,找了这个资源可行.转自: https://blog.csdn.net/weixin_44729896/article/details/100524824 ...
- 【c++进阶:c++ 顺序容器vector,string,deque,list,forward_list,array常用性质】
常用5种顺序容器性质: https://blog.csdn.net/oil_you/article/details/82821833 关于deque https://www.cnblogs.com/L ...
- 线对 Line pairs、LP(分辨率cy/mm)
线对 (Line pairs) 是胶片.镜头等电影摄影领域的专用名词. 每毫米线对一般指分辨率的单位,指仪器在一毫米内能分辨出多少对线. 在一定尺度内的可分辨线对数常被用来衡量仪器的空间分辨能力,能分 ...
- node初始化配置no
原文链接:https://blog.csdn.net/jianleking/article/details/79130667 引言: 很久没有在windows上配过node, 记得以前node环境变量 ...
- 几家大的券商的PB系统以及算法交易概况大致是怎样的?
PB的定位是托管-清算-交易.目前的PB系统方面的竞争点主要放在了交易环节(毕竟托管和清算没有多大的差异).目前的pb交易环节的技术提供有恒生.讯投.金证.同花顺等,以满足私募及高净值个人多样化交易和 ...
- laravel 使用PhantomMagick导出pdf ,在Linux下安装字体
git项目地址:https://github.com/anam-hossain/phantommagick sudo apt-get -y install fontconfig xfonts-util ...
- RabbitMQ使用(上)
1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方, ...