赞
踩
在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。
- from selenium import webdriver
-
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
-
- print(driver.find_element('xpath', '//*[@id="s-top-left"]/a[2]').text)
- driver.find_element("id", "kw").clear()
- driver.find_element("id", "kw").send_keys('selenium')
- driver.find_element("id", "su").click()
- print(driver.find_element("id", "kw").get_attribute("value"))
- print(driver.find_element("id", "kw").is_displayed())
-
- driver.quit()
在百度搜索框输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。submit()一般用于模拟回车键。
- from selenium import webdriver
-
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
-
- driver.find_element("id", "kw").clear()
- driver.find_element("id", "kw").send_keys('selenium')
- driver.find_element("id", "kw").submit()
键盘操作需要先导入如下模块:from selenium.webdriver.common.keys import Keys,然后使用send_keys(Keys.ENTER)模拟enter键。
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
-
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
-
- driver.find_element("id", "kw").clear()
- driver.find_element("id", "kw").send_keys('selenium')
- # 模拟键盘enter键
- driver.find_element("id", "kw").send_keys(Keys.ENTER)
-
- driver.quit()
鼠标不仅可以点击(click),还可执行其他操作,比如:将鼠标悬停在某个元素上、鼠标右击等。
鼠标操作需要先导入如下模块:from selenium.webdriver.common.action_chains import ActionChains,然后使用move_to_element()实现鼠标悬停,最后使用perform()执行ActionChains中所有行为。这里以百度页面设置按钮为例。
- from selenium import webdriver
- from selenium.webdriver.common.action_chains import ActionChains
-
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
-
- ele = driver.find_element('xpath', '//*[@id="s-usersetting-top"]')
- ActionChains(driver).move_to_element(ele).perform()
-
- driver.quit()
通过ajax获取的下拉菜单中的元素对象也可以进行定位,比如百度搜素提示:
- from selenium import webdriver
- import time
-
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com')
-
- driver.find_element('id', 'kw').send_keys('py')
- time.sleep(1)
- # 定位悬浮菜单
- menus = driver.find_elements('css selector', '.bdsug-overflow.c-line-clamp1')
-
- for i in menus:
- print(i.text)
-
- menus[3].click()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。