selenium节点操作及操作表单
一、常见的节点操作
- 1、使用
send_keys()
输入框里面设置值 - 2、使用
clear()
清除输入框里面的值 3、使用
click()
执行页面的点击操作import time from selenium import webdriver # 使用键盘按键方法要导入下面的类 from selenium.webdriver.common.keys import Keys browser = webdriver.Chrome() browser.get('https://www.baidu.com/') input = browser.find_element_by_xpath('//input[@id="kw"]') # 设置值 input.send_keys('python') # 设置回车 input.send_keys(Keys.ENTER) time.sleep(5) # 清除 input.clear() input.send_keys('scrapy') btn = browser.find_element_by_xpath('//input[@class="bg s_btn"]') btn.click()
4、关于更多的键盘键值操作请参数
二、动作链(多个连续的动作组合在一起,常见滑动解锁)参考文档
1、使用拖放案例的网站
2、具体的代码
import time from selenium import webdriver from selenium.webdriver import ActionChains browser = webdriver.Chrome() browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') # 切换到frame窗口 browser.switch_to.frame('iframeResult') source = browser.find_element_by_css_selector('#draggable') target = browser.find_element_by_css_selector('#droppable') actions = ActionChains(browser) actions.drag_and_drop(source=source, target=target) time.sleep(5) actions.perform() # 操作完成后切换回主窗口 browser.switch_to.default_content()
3、几个常用的事件更多请参考
- 1.
click_and_hold(element)
:点击但不松开鼠标 - 2.
context_click(element)
:右键点击 3.
double_click(element)
:双击from selenium.webdriver.common.action_chains import ActionChains ActionChains(self.browser).double_click(节点)
- 1.
三、表单操作
- 1、输入框直接使用
send_keys(value)
输入值 2、
checkbox
复选框的操作,因为要选中checkbox
标签,在网页中是通过鼠标点击的。因此想要选中checkbox
标签,那么先选中这个标签,然后执行click
事件rememberTag = browser.find_element_by_name("rememberMe") rememberTag.click()
3、选择
select
的操作:select
元素不能直接点击。因为点击后还需要选中元素。这时候selenium
就专门为select
标签提供了一个类selenium.webdriver.support.ui.Select
。将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了from selenium.webdriver.support.ui import Select # 选中这个标签,然后使用Select创建对象 selectTag = Select(browser.find_element_by_name("jumpMenu")) # 根据索引选择 selectTag.select_by_index(1) # 根据值选择 selectTag.select_by_value("http://www.xxx.com") # 根据可视的文本选择 selectTag.select_by_visible_text("xxx") # 取消选中所有选项 selectTag.deselect_all()
4、按钮的操作
inputTag = browser.find_element_by_id('su') inputTag.click() # 如果type="submit"的时候可以使用 element = browser.browser.find_element_by_name("rememberMe") element.submit()
四、使用execute_script
执行Javascript
脚本
1、访问淘宝,让滚动条拉到最下面,然后弹出一句话
import time from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.taobao.com/') time.sleep(5) # 执行脚本 browser.execute_script('window.scrollTo(0, document.body.scrollHeight)') browser.execute_script('alert("hi 已经到底部了")') time.sleep(10) browser.quit()
五、操作浏览器
- 1、打开关闭浏览器就直接看之前的章节了
2、前进与后退(需要联系打开页面,然后才有历史记录)
import time from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.baidu.com') browser.get('https://www.jd.com/') browser.get('https://www.taobao.com/') # 后退 browser.back() time.sleep(2) # 前进 browser.forward() time.sleep(2) browser.close()
3、多开几个浏览器(一般浏览器以
tab
方式展示)import time from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.baidu.com') # 新开一个窗口 browser.execute_script("window.open('https://www.jd.com/')") browser.execute_script("window.open('https://www.taobao.com/')") time.sleep(5) browser.switch_to.window(browser.window_handles[0]) time.sleep(5) browser.switch_to.window(browser.window_handles[1]) time.sleep(5) browser.switch_to.window(browser.window_handles[2]) time.sleep(5) browser.close()