码迷,mamicode.com
首页 > 其他好文 > 详细

Selenium模块的使用(二)

时间:2020-06-30 20:46:57      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:end   http   nta   输入框   登陆   网站   解决问题   水平   nbsp   

selenium处理iframe
- 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
- 动作链(拖动):from selenium.webdriver import ActionChains
- 实例化一个动作链对象:action = ActionChains(bro)
- click_and_hold(div):长按且点击操作
- move_by_offset(x,y)
- perform()让动作链立即执行
- action.release()释放动作链对象

from selenium import webdriver
from selenium.webdriver import ActionChains
import time
bro = webdriver.Chrome(executable_path=./chromedriver.exe)
bro.get(https://c.runoob.com/front-end/61)
# iframe标签 可在当前页面下嵌套子页面
# 获得当前页面的子页面的标签
bro.switch_to.frame(iframeResult)  # 改变浏览器标签定位的作用域
div = bro.find_element_by_id(ha)
action = ActionChains(bro) # 实例化动作链
action.click_and_hold(div) # 点击长按指定的标签
for i in range(5):
    # move_by_offse(x,y) x水平方向 y竖直方向 移动
    # perform() 执行动作链操作
    action.move_by_offset(16,0).perform()
    time.sleep(0.3)

# 释放动作链
action.release()
bro.quit()

 

Selenium实现模拟登录

示例:QQ空间模拟登录

技术图片

from selenium import webdriver
import time
bro = webdriver.Chrome(executable_path=./chromedriver)
# 发送请求
bro.get(https://qzone.qq.com/)

# # 改变浏览器标签定位的作用域
bro.switch_to.frame(login_frame)

# 点击账号密码登陆
btn = bro.find_element_by_id(switcher_plogin)

# 点击按钮
btn.click()
time.sleep(1)

# 找到用户名 密码输入框
user = bro.find_element_by_id(u)
pwd = bro.find_element_by_id(p)

# 输入用户名 密码
user.send_keys(1121434897)
time.sleep(1)
pwd.send_keys(123456)
time.sleep(1)

# 找到登录按钮
submit = bro.find_element_by_id(login_button)

# 点击按钮
submit.click()
time.sleep(2)
bro.quit()

 

 

检测规避

现在不少大网站有对selenium采取了监测机制。比如正常情况下我们用浏览器访问淘宝等网站的 window.navigator.webdriver的值为

undefined。而使用selenium访问则该值为true。那么如何解决这个问题呢?

只需要设置Chromedriver的启动参数即可解决问题。在启动Chromedriver之前,

为Chrome开启实验性功能参数excludeSwitches,它的值为[‘enable-automation’],完整代码如下:

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions
option = ChromeOptions()
option.add_experimental_option(excludeSwitches, [enable-automation])
driver = Chrome(options=option)

 

Selenium模块的使用(二)

标签:end   http   nta   输入框   登陆   网站   解决问题   水平   nbsp   

原文地址:https://www.cnblogs.com/sxy-blog/p/13215544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!