xpath 语法&元素交互操作
时间:2019-06-18
本文章向大家介绍xpath 语法&元素交互操作,主要包括xpath 语法&元素交互操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Xpath语法
//body/. 表示从body当前位置查找
from selenium import webdriver driver = webdriver.Chrome() try: #隐式等待,下载get请求之前,而显式请求写在get请求后:wait.until(....) driver.implicitly_wait(10) driver.get('https://doc.scrapy.org/en/latest/_static/selectors-sample1.html') #根据xpath语法查找元素 #从根开始找,第一个 用/ html =driver.find_element_by_xpath('/html') print(html.tag_name) #从根节点开始找,任意一个元素,用// head =driver.find_element_by_xpath('//head') print(head.tag_name) div = driver.find_element_by_xpath('//div') print(div.tag_name) # #查找id为images的div节点 # div1 = driver.find_element_by_xpath('//div[@id="images"]') # print(div1.tag_name) # print(div1.text) #找到第一个a节点 a = driver.find_element_by_xpath('//a') print(a.tag_name) #找到所有a节点 a_s = driver.find_elements_by_xpath('//a') print(a_s) #找到第一个a节点的href属性 # a1 = driver.find_element_by_xpath('//a/href') # # print(a1.tag_name) # #get_attribute:获取节点中的某个属性 a2 = driver.find_element_by_xpath('//a').get_attribute('href') print(a2) finally: driver.close()
2.
元素交互操作
from selenium import webdriver from selenium.webdriver.common.keys import Keys #键盘按键操作 import time driver = webdriver.Chrome() driver.maximize_window() try: driver.implicitly_wait(10) driver.get('https://www.jd.com') image_tag = driver.find_element_by_id('key') image_tag.send_keys('围城') image_tag.send_keys(Keys.ENTER) time.sleep(2) image_tag = driver.find_element_by_id('key') image_tag.clear() image_tag.send_keys('墨菲定律') image_tag.send_keys(Keys.ENTER) button = driver.find_element_by_class_name('button') button.click() time.sleep(2) finally: driver.close()
3.添加cookie
添加cookie """ driver = webdriver.Chrome() driver.maximize_window() try: driver.implicitly_wait(10) driver.get('https://www.zhihu.com/explore') #driver.add_cookie({'name':'tank','pwd':'123'}) #这个不行,应该和网页里的cookie一致 driver.add_cookie({'Name': 'tank', 'Value': '123'}) driver.get_cookies()
#若上面的报错,可以先用print(driver.get_cookies())代替上两句,测试获取当前网站的cookie
time.sleep(2) finally: driver.close()
原文地址:https://www.cnblogs.com/evan0925/p/11043526.html
- 干货:Java正确获取客户端真实IP方法整理
- sublime学习笔记
- Java程序员必须掌握的常用Linux命令。
- SAMP论文学习
- IEEE Trans 2009 Stagewise Weak Gradient Pursuits论文学习
- async和enterproxy控制并发数量
- 从零开始写项目终极【维护网站、修复Bug】
- Redis 数据结构与内存管理策略(下)
- Redis 数据结构与内存管理策略(上)
- Servlet第三篇【request和response简介、response的常见应用】
- Java 10的10个新特性,将彻底改变你写代码的方式!
- JDK9新特性实战:简化流关闭新姿势。
- Druid数据库连接池就是这么简单
- 使用 github 做代码管理,知道这些就够了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法