1、获取测试网址
from selenium import webdriver import timedriver=webdriver.Chrome() driver.maximize_window() driver.get('https://www.baidu.com/') time.sleep(10) print('当前网址是:{0}'.format(driver.current_url))
2、获取当前页面代码
from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('https://www.baidu.com/') print('获取当前页面代码:{0}'.format(driver.page_source))
3、获取当前的Title
from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('https://www.baidu.com/') print('百度首页的Title为:{0}'.format(driver.title))
4、页面的前进和后退
前进用到的方法是 forword,后退用到的方法是back
import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(10) driver.get('http://www.bing.com') time.sleep(10) driver.back() print('获取当前网址为:{0}'.format(driver.current_url)) time.sleep(10) driver.forward() print('获取当前网址为:{0}'.format(driver.current_url))
5、关闭程序
Selenium中,quit方法用来退出驱动程序并关闭执行的浏览器,而close方法用来关闭执行的浏览器,所以关闭程序建议使用quit方法
6、多窗口实战
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://mail.sina.com.cn') driver.implicitly_wait(30) now_handle=driver.current_window_handle time.sleep(10) driver.find_element(By.LINK_TEXT,'注册').click() time.sleep(10) handles=driver.window_handles for handle in handles:if handle!=now_handle:driver.switch_to.window(handle)time.sleep(10)driver.find_element(By.NAME,'email').send_keys('wuya')time.sleep(10)driver.close() driver.switch_to.window(now_handle) time.sleep(10) driver.find_element(By.ID,'freename').send_keys('wuya') time.sleep(10) driver.quit()
7、刷新(refresh)
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') driver.find_element(By.ID,'kw').send_keys('测试') time.sleep(5) driver.refresh() time.sleep(5) driver.quit()
8、获取执行的浏览器(name)
import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(5) print('获取执行的浏览器:{0}'.format(driver.name)) driver.quit()
9、清空(clear)
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') so=driver.find_element(By.ID,'kw') so.send_keys('测试') time.sleep(3) so.clear() driver.quit()
10、获取多元素属性值(get_property)
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') so=driver.find_element(By.ID,'kw') so.send_keys('测试') time.sleep(9) print('获取百度输入框中填写的关键字为:{0}'.format(so.get_property("value")))
11、检查元素是否可见(is_displayed)
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(10) about=driver.find_element(By.LINK_TEXT,'关于百度') time.sleep(10) print('判断关于百度是否可见:{0}'.format(about.is_displayed()))
12、检查元素是否可编辑(is_enabled)
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(5) so=driver.find_element(By.ID,'kw') time.sleep(8) print('判断百度输入框是否可编辑:{0}'.format(so.is_enabled())) driver.quit()
13、下拉框定位
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <center>喜欢的编程语言:<select id="nr"><option value="" selected>请选择您喜欢的编程语言</option><option value="Python">Python语言</option><option value="Go">Go语言</option><option value="Java">Java语言</option></select> </center> </body> </html>from selenium.webdriver.common.by import By import time from selenium import webdriver from selenium.webdriver.support.select import Selectdriver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/86151/Desktop/cailiao/index.html') nr=driver.find_element(By.ID,'nr') obj=Select(webelement=nr) # 用value定位 # obj.select_by_value('Python') # 用索引定位 # obj.select_by_index(2) # 文本定位 obj.select_by_visible_text('Java语言') time.sleep(10) driver.quit()
14、弹窗框实战
警告框
<!DOCTYPE html> <html><head><meta charset="utf-8"><script>alert("这是弹出框提示文本弹窗")</script><title></title></head><body><p>alert是阻塞的函数</p><p>这句话只有在确认弹出框的提示文本后才会显示</p></body> </html>import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/86151/Desktop/cailiao/wenbenneirong.html') print("获取弹窗中的文本信息:{0}".format(driver.switch_to.alert.text)) time.sleep(20) driver.switch_to.alert.accept() time.sleep(10) driver.quit()
确认框
<!DOCTYPE html> <html><head><meta charset="utf-8"><script>var x; var r=confirm("请按下按钮!");if (r==true){x="你按下的是\"确定\"按钮。";}else{x="你按下的是\"取消\"按钮。";}document.write(x)</script><title></title></head><body></body> </html>import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(2).html') time.sleep(10) driver.switch_to.alert.accept() time.sleep(10) driver.refresh() time.sleep(5) driver.switch_to.alert.dismiss() time.sleep(5) driver.quit()
输入框
<!DOCTYPE html> <html><head><meta charset="utf-8"><script>var x; var name=prompt("请输入您的姓名:","")if (name!=null && name!=""){ x="你好! " + name + "!";document.write(x)} </script><title></title></head><body></body> </html>import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(3).html') time.sleep(20) driver.switch_to.alert.send_keys('zhangsan') time.sleep(20) driver.switch_to.alert.accept() time.sleep(10) driver.quit()
15、鼠标悬浮操作
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(5) actionChains=ActionChains(driver) nr=driver.find_element(By.ID,'s-usersetting-top') time.sleep(3) actionChains.move_to_element(nr).perform() driver.find_element(By.LINK_TEXT,'搜索设置').click() time.sleep(10) driver.quit()
16、鼠标右键操作
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') actionChains=ActionChains(driver) nr=driver.find_element(By.ID,'kw') time.sleep(3) actionChains.context_click(nr).perform() time.sleep(3) driver.quit()
17、鼠标双击操作
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') time.sleep(3) actionChains=ActionChains(driver) so=driver.find_element(By.ID,'su') time.sleep(5) actionChains.double_click(so).perform() time.sleep(3) driver.quit()
18、键盘事件
from selenium.webdriver.common.by import By import time from selenium import webdriver from selenium.webdriver.common.keys import Keysdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') so=driver.find_element(By.ID,'kw') time.sleep(5) so.send_keys('中国') so.send_keys(Keys.CONTROL,'a') so.send_keys(Keys.CONTROL,'C') so.send_keys(Keys.BACKSPACE) driver.get('http://www.bing.com') nr=driver.find_element(By.ID,'sb_form_q') nr.send_keys(Keys.CONTROL,'v') time.sleep(5) driver.quit()
19、浏览器滑动操作
from selenium.webdriver.common.by import By import time from selenium import webdriverdriver=webdriver.Chrome() driver.maximize_window() driver.get('http://www.baidu.com') driver.find_element(By.ID,'kw').send_keys('中国') driver.find_element(By.ID,'su').click() down="var q=document.documentElement.scrollTop=10000" time.sleep(10) driver.execute_script(down) up="var q=document.documentElement.scrollTop=0" time.sleep(10) driver.execute_script(up) driver.quit()