python selenuim 行为链

selenuim行为链

在这里插入图片描述

具体url参考:http://selenium-python.readthedocs.io/api.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

行为链事例

from selenium import webdriver
from selenium.webdriver import ActionChains

driver =webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 定位到输入框
inputTag =driver.find_element_by_id('kw')
# 定位到百度搜索按钮
button =driver.find_element_by_id('su')
# 实例化
actions =ActionChains(driver)
# 把鼠标移动到输入框里面
actions.move_to_element(inputTag)
# 输入内容
actions.send_keys_to_element(inputTag,'五一节快乐')
# 提交行为链的操作
actions.perform()

行为链后需要点击按钮button才可以,方法有两个,一个是在行为链之后——button.click()

在这里插入图片描述

方法2:在行为链中将鼠标转到button再click()

在这里插入图片描述
在这里插入图片描述

右键单击——context_click(element)

在这里插入图片描述
在这里插入图片描述

用selenuim获取cookie

在这里插入图片描述

from selenium import webdriver
import time
driver =webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 获取cooke get_cookies() 返回的是列表 所以用遍历
cookies =driver.get_cookies()
for cookie in cookies:
    print(cookie)

在这里插入图片描述

有用的是name和value

在这里插入图片描述

用这里的cookie来模拟登录qq空间

在这里插入图片描述

到达qq快速登录,点击头像登录空间

在这里插入图片描述
在这里插入图片描述

用json解析看数据

# 用这里的cookie模拟登录qq空间
driver =webdriver.Chrome()
driver.get('qq空间')
button =driver.find_element_by_class_name('face')
button.click()
# 获取cookie
cookies =driver.get_cookies()
print(type(cookies))
print('--'*50)#这里是列表
# 此时将python的列表转为json类型的字符串
# 将json转为python类型的是json.loads,将python的转为json 的是json.dumps
jsoncookies =json.dumps(cookies)
print(type(jsoncookies))

在这里插入图片描述
在这里插入图片描述

此时获取的cookie可以看到是在列表里面

在这里插入图片描述

正常cookie

在这里插入图片描述

此时,cookie获取了,为了保证cookie的获取,可以time.sleep()几秒等待加载完成

在这里插入图片描述

模拟登录

在这里插入图片描述

selenuim页面等待

方法一:time.sleep()

from selenium import webdriver
import time
driver =webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
driver.find_element_by_id('kw').send_keys('python')

隐形等待——implicitly_wait()

在这里插入图片描述

from selenium import webdriver
import time
driver =webdriver.Chrome()
driver.get('https://www.baidu.com/')
# time.sleep(2)
# 隐形等待
driver.implicitly_wait()
driver.find_element_by_id('kw').send_keys('python')

在这里插入图片描述

显示等待

# 显示等待
## 定位查询  查询按钮
driver.find_element_by_id("qd_closeDefaultWarningWindowDialog_id").click()
button =driver.find_element_by_id("query_ticket")
button.click()

在这里插入图片描述

# 显示等待
## 定位查询  查询按钮
driver.find_element_by_id("qd_closeDefaultWarningWindowDialog_id").click()
# 直接这样出发地目的地会红色——没有设置出发地和目的地
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 输入出发地
WebDriverWait(driver,50).until(
    EC.text_to_be_present_in_element_value((By.ID,"fromStationText"),'长沙')
)
WebDriverWait(driver,50).until(
    EC.text_to_be_present_in_element_value((By.ID,"toStationText"),'北京')
)
button =driver.find_element_by_id("query_ticket")
button.click()

此时满足条件(长沙到北京)显示等待条件满足,直接不用手动点查询(代码写了)就可以得到结果

在这里插入图片描述
在这里插入图片描述

多窗口

在这里插入图片描述

如果直接这样,会覆盖旧页面,而不是两个窗口

在这里插入图片描述

execute_script(“window.open(url)”)

在这里插入图片描述
在这里插入图片描述

但是此时问题在于,做的操作仍然是百度,当执行close()的时候,关闭的是百度,input标签输入的也是百度

在这里插入图片描述

这时要切换窗口才可以操作豆瓣

switch_to.window(driver.window_handles[切换窗口索引值])

在这里插入图片描述
在这里插入图片描述

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值