基于python3的selenium3的web自动化
1、在线安装selenium3
进入dos窗口,输入:pip install selenium
2、卸载selenium
进入dos窗口,输入:pip uninstall selenium
3、检查是否安装成功:pip list
4、每种浏览器,都要有对应的驱动,放在 python安装目录下 或 Python35\Scripts目录下,并配置
好环境变量,如果安装python的时候,自动配置了环境变量,就不用手动配置了。
'''
###############################
#1、导入selenium包的webdriver方法
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
#2、打开浏览器
#1)、打开火狐浏览器
#dr = webdriver.Firefox()
#2)、获取浏览器的驱动,并打开谷歌浏览器
dr = webdriver.Chrome()
#3)、打开被测系统页面
url = "https://www.so.com/"
dr.get(url)
#元素定位
'''
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_tag_name()
find_element_by_xpath()
find_element_by_css_selector()
'''
'''
脚本的编写,遵循LOVE原则:
L:locate -- 定位
O:operate -- 操作
V:verify -- 断言,验证实际结果与预期结果是否一致
E:except -- 异常处理
'''
#1、根据id定位 -- 要求:属性值必须唯一
'''
inputBox = dr.find_element_by_id("input")
inputBox.send_keys("selenum自动化")
#点击 搜索 按钮
dr.find_element_by_id("search-button").click()
'''
#2、根据name定位 -- 要求:属性值必须唯一
'''
dr.find_element_by_name("q").send_keys("selenum自动化")
#点击 搜索 按钮
dr.find_element_by_id("search-button").click()
'''
#3、根据class_name定位 -- 要求:属性值必须唯一
'''
dr.find_element_by_class_name("placeholder").send_keys("selenum自动化")
#点击 搜索 按钮
dr.find_element_by_class_name("skin-search-button").click()
'''
#4、根据 link_text 定位 -- 要求:属性值必须唯一
'''
dr.find_element_by_link_text("资讯").click()
sleep(3)
#5、根据 partial_link_text 定位 -- 要求:属性值必须唯一
dr.find_element_by_partial_link_text("50亿").click()
'''
#6、根据tag_name定位
#inputBox = dr.find_element_by_tag_name("input")
#inputBox.send_keys("selenum自动化")
#6.1定位一组元素
'''
inputBoxes = dr.find_elements_by_tag_name("input")
for inputBox in inputBoxes:
if inputBox.get_attribute("type") == "text" and \
inputBox.get_attribute("suggestwidth") == '540px':
inputBox.send_keys("selenum自动化")
'''
#7、根据xpath定位
#1)、根据绝对路径来定位
#输入搜索关键字
'''
path1 = "/html/body/div[2]/div/section[2]/div/form/fieldset/div[2]/input"
dr.find_element_by_xpath(path1).send_keys("selenum自动化")
#点击 搜索 按钮
path2 = "/html/body/div[2]/div/section[2]/div/form/fieldset/input[4]"
dr.find_element_by_xpath(path2).click()
'''
#2)、通过元素属性定位
#dr.find_element_by_xpath("//input[@type='text']").send_keys("selenum自动化")
#dr.find_element_by_xpath("//*[@type='text']").send_keys("selenum自动化")
#点击 搜索 按钮
#3)、通过多个属性组合定位
#dr.find_element_by_xpath("//input[@type='text' and @suggestwidth='540px']").send_keys("selenum自动化")
#4)、通过层次与属性组合定位
'''
xpathAddr = "//div[@class='skin-search-input hover']/input[@type='text']"
dr.find_element_by_xpath(xpathAddr).send_keys("selenum自动化")
'''
####### 8、根据css定位
#1)、通过class 属性定位
#dr.find_element_by_css_selector(".placeholder").send_keys("selenum自动化")
#2)、通过id 属性定位
#dr.find_element_by_css_selector("#search-button").click()
#3)、通过标签名定位
#dr.find_element_by_css_selector("input").send_keys("selenium自动化")
#4)、通过属性定位
#dr.find_element_by_css_selector("input[autocomplete=off]").send_keys("selenium自动化")
#dr.find_element_by_css_selector("[autocomplete=off]").send_keys("selenium自动化")
# 5)、通过层级的父子关系定位
#dr.find_element_by_css_selector("div > input").send_keys("selenium自动化")
# 6)、通过层级与属性组合定位
#dr.find_element_by_css_selector("div > input.placeholder#input").send_keys("selenium自动化")
#dr.find_element_by_css_selector("div.skin-search-input.hover > input.placeholder#input").send_keys("selenium自动化")
######################## 元素定位之By类 #########################
#根据id定位
dr.find_element(By.ID,"input").send_keys("selenium自动化")
#根据class定位
dr.find_element(By.CLASS_NAME,"placeholder").send_keys("selenium自动化")
#根据name定位
dr.find_element(By.NAME,"q").send_keys("selenium自动化")
#根据xpath定位
dr.find_element(By.XPATH,"//input[@type='text']").send_keys("selenium自动化")
#根据css定位
dr.find_element(By.CSS_SELECTOR,"[autocomplete=off]").send_keys("selenium自动化")
###################################################
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
dr = webdriver.Chrome()
dr.get("https://mail.163.com/")
sleep(1)
#定位表单位置
frame = dr.find_element(By.CSS_SELECTOR,"#x-URS-iframe")
#切换表单
dr.switch_to.frame(frame)
#输入用户名
dr.find_element(By.CSS_SELECTOR,"[name=email]").send_keys("username")
#切换回默认表单
dr.switch_to.default_content()
#点击 企业邮箱
dr.find_element(By.LINK_TEXT,"企业邮箱").click()