from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 定位页面元素为keyword的输入框,并且清空默认的内容
driver.find_element(By.ID,"keyword").clear()# 定位页面元素为keyword的输入框,并且输入内容【启动】
driver.find_element(By.ID,"keyword").send_keys("启动")# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
2. 通过name元素进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 定位页面元素为keywords的输入框,并且清空默认的内容
driver.find_element(By.NAME,"keywords").clear()# 定位页面元素为keywords的输入框,并且输入内容【启动】
driver.find_element(By.NAME,"keywords").send_keys("启动")# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
3. 通过元素class进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 定位页面元素为indexw_header_input_text的输入框,并且清空默认的内容
driver.find_element(By.CLASS_NAME,"indexw_header_input_text").clear()# 定位页面元素为indexw_header_input_text的输入框,并且输入内容【启动】
driver.find_element(By.CLASS_NAME,"indexw_header_input_text").send_keys("启动")# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
4. 通过tag标签名进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 定位页面input标签,并且清空默认的内容
driver.find_element(By.TAG_NAME,"input").clear()# 定位页面input标签,并且输入内容【启动】
driver.find_element(By.TAG_NAME,"input").send_keys("启动")# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
5. 通过link_text进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 点击页面中【我的账户】链接
driver.find_element(By.LINK_TEXT,"我的账户").click()# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
6. 通过partial_link_text进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 点击页面中【我的账户】链接
driver.find_element(By.PARTIAL_LINK_TEXT,"账户").click()# 休眠等待3秒
sleep(3)# 关闭浏览器和驱动
driver.quit()
7. 通过XPATH进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 通过xpath相对路径进行定位,清空输入框的默认值
driver.find_element(By.XPATH,"//input[@id='keyword']").clear()# 通过xpath相对路径进行定位,输入【测】
driver.find_element(By.XPATH,"//input[@id='keyword']").send_keys("测")# 通过xpath绝对路径进行定位,输入【试】
driver.find_element(By.XPATH,"/html/body/div/div[2]/div[2]/div[3]/div/div/form/input").send_keys("试")# 通过xpath相对路径找父级标签,然后再找子标签,输入【查】
driver.find_element(By.XPATH,"//form[@id='searchForm']/input").send_keys("查")# 通过xpath找自身元素的其他属性,输入【询】
driver.find_element(By.XPATH,"//input[@type='text']").send_keys("询")# 通过xpath找多个元素同时成立,输入【功能】
driver.find_element(By.XPATH,"//input[@type='text' and @value='戒托']").send_keys("功能")# 休眠等待3秒
sleep(5)# 关闭浏览器和驱动
driver.quit()
8. 通过css进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 打开谷歌浏览器
driver = webdriver.Chrome()# 在浏览器中输入网址
driver.get("http://www.holyshop.com/")# 将浏览器窗口最大化
driver.maximize_window()# 通过css进行定位页面元素,#表示id的属性,清空搜索框的默认值
driver.find_element(By.CSS_SELECTOR,"#keyword").clear()# 通过css进行定位页面元素,.表示class的属性,输入【软】
driver.find_element(By.CSS_SELECTOR,".indexw_header_input_text").send_keys("软")# 通过css自身元素进行定位,输入【件】
driver.find_element(By.CSS_SELECTOR,'[type="text"]').send_keys("件")# 通过css找父级元素,然后再找子元素,输入【测】
driver.find_element(By.CSS_SELECTOR,'#searchForm>input#keyword').send_keys("测")# 通过自身多个元素同时成立,进行定位,输入【试】
driver.find_element(By.CSS_SELECTOR,'[type="text"],[value="戒托"]').send_keys("试")# 休眠等待3秒
sleep(5)# 关闭浏览器和驱动
driver.quit()
selenium三种断言方式
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get("http://www.holyshop.com/user.php")
driver.maximize_window()# 登录页面输入用户名和密码点击登录按钮
driver.find_element(By.NAME,"username").send_keys("holy1")
driver.find_element(By.NAME,"password").send_keys("123456")
driver.find_element(By.NAME,"submit").click()
sleep(3)# 强制等待3秒# 获取元素的文本值
text = driver.find_element(By.XPATH,"//font[@id='ECS_MEMBERZONE']/a[2]").text
# 获取当前网址
url = driver.current_url
# 获取当前网站的title信息
title = driver.title
# 通过文本值进行断言,这种方法使用最多if"退出"== text:print("使用文本进行断言,登录成功")else:print("登录失败")# 通过url进行断言,selenium提供了这个方法,但是一般不用if url =="http://www.holyshop.com/user.php":print("使用url进行断言,登录成功")else:print("登录失败")# 通过title进行断言,selenium提供了这个方法,但是一般不用if title =="用户中心_HOLYSHOP演示站 - Powered by HOLYShop":print("使用title进行断言,登录成功")else:print("登录失败")
driver.quit()
获取页面元素的属性和尺寸
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("http://www.holyshop.com/user.php")
driver.maximize_window()# 获取元素在页面中的高和宽
size = driver.find_element(By.NAME,"username").size
print(size)# 获取定位的页面元素其他的属性值
attribute = driver.find_element(By.NAME,"username").get_attribute("class")print(attribute)
driver.quit()
selenium 等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import*
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()# 窗口最大化
driver.implicitly_wait(30)# 全局等待print("开始全局等待",ctime())try:# 故意写错元素,验证全局等待功能
driver.find_element(By.ID,"kw1").send_keys("迪迦凹凸曼")except Exception as e:print(e)print("结束全局等待",ctime())
driver.find_element(By.ID,"kw").send_keys("宇智波鼬")print("开始强制等待",ctime())
sleep(3)print("结束强制等待",ctime())
driver.quit()