第五章 爬虫进阶(十九) 2020-02-05

十九、 selenium的行为链

 

有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类

selenium.webdriver.common.action_chains.ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。那么示例代码如下:


inputTag= driver.find_element_by_id(‘kw’)

submitTag= driver. find_element_by_id(‘su’)

actions= ActionChains(driver)

action.move_to_element(inputTag)

actions.send_keys_to_element(inputTag,’python’)

actions.move_to_element(submitTag)

actions.click(submitTag)

actions.perform()

还有更多的鼠标相关的操作。

click_and_hold(element):点击但不松开鼠标。

context_click(element):右键点击。

double_click(element):双击。

更多方法请参考:http://selenium-python.readthedocs.io/api.html


为什么需要行为链


因为有些网站可能会在浏览器端做一些验证行为是否符合人类的行为来做反爬虫。这时候我们就可以使用行为链来模拟人的操作。行为链有更多的复杂操作,比如双击、右键等,在自动化测试中非常有用。


示例代码


from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

 

driver = webdriver.Chrome(executable_path="E:\python\chromedriver\chromedriver.exe")

 

driver.get("https://www.zhihu.com/signin?next=%2F")

 

actions = ActionChains(driver)

usernameTag = driver.find_element_by_name("username")

passwordTag = driver.find_element_by_name("digits")

submitBtn = driver.find_element_by_class_name("SignFlow-submitButton")

 

actions.move_to_element(usernameTag)

actions.send_keys_to_element(usernameTag,"18888888888")

actions.move_to_element(passwordTag)

actions.send_keys_to_element(passwordTag,"666666")

actions.move_to_element(submitBtn)

actions.click(submitBtn)

 

actions.perform()



上一篇文章 第五章 爬虫进阶(十八) 2020-02-04 地址:

https://www.jianshu.com/p/74edbffb99de

下一篇文章 第五章 爬虫进阶(二十) 2020-02-06 地址:

https://www.jianshu.com/p/be35bb066878



以上资料内容来源网络,仅供学习交流,侵删请私信我,谢谢。

你可能感兴趣的:(第五章 爬虫进阶(十九) 2020-02-05)