1.SELENIUM 执行DRIVER = WEBDRIVER.FIREFOX()时报错解决方案:
链接:https://www.cnblogs.com/bzdmz/p/10320514.html
2.第一个自动化脚本所遇到的问题:
①:要下载浏览器的插件(如IE、Firefox、Chrome)
②:将下载的插件放入到浏览器的安装目录并配置环境变量
③:将下载的插件放入到python的安装目录下(示例: Programs\Python\Python36)
④:find_element_by_*** 的应用
链接:https://selenium-python- zh.readthedocs.io/en/latest/locating-elements.html
⑤:获取元素的值
⑥:将获取到的值与测试值进行比较
# conding=utf-8
import time #导入时间模块
from selenium import webdriver # 导入webdriver包
driver = webdriver.Firefox() # 初始化一个火狐浏览器实例:driver
driver.maximize_window() # 最大化浏览器
'''设置隐式时间等待,当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待;
超出设定时间后则抛出找不到元素的异常,换句话说,当查找元素或元素并没有立即出现的时候,隐式等待
将等待一段时间在查找DOM,默认时间是0,一旦设置了隐式等待,则它存在整个WebDriver对象实例的生命周期中
隐式等待会让一个正常响应的应用的测试变慢,它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行
的时间'''
driver.implicitly_wait(8) #设置隐式时间等待
driver.get("http:www.baidu.com")#.send_keys(Keys.Enter) # 通过get()方法,打开一个url站点
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('selenium')#获取文本框id,并在文本框里输入内容
driver.find_element_by_xpath('//*[@id="su"]').click() #触发搜索点击
time.sleep(5) #推迟调用函数的运行,语法:time.sleep(t)
ele_string = driver.find_element_by_xpath("//*[@id='2']/h3/a").text #获取要测试的元素值,并赋值
print(ele_string)
if (ele_string == u"Selenium_百度百科"):
print("测试成功,结果和预期结果匹配!")
else :
print("测试失败,结果和预期结果不匹配!")
driver.quit()
3.练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作。但是这些字段可能在一个网页的不同地方。例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱。
# coding=utf-8
from selenium import webdriver #导入webdriver包
import re #用来匹配字符串的 链接:https://blog.csdn.net/likunkun__/article/details/81707883
driver = webdriver.Firefox() #初始化火狐浏览器
driver.maximize_window() #最大化浏览器
driver.implicitly_wait(6) #设置隐式时间等待
driver.get("http://home.baidu.com/contact.html") #通过get方法,打开url站点
#得到页面源代码
doc = driver.page_source
#利用正则,找出XX@XXX.XX的字段,保存到emails列表
emails = re.findall(r'[\w]+@[\w\.-]+',doc)
for email in emails:
print(email)
4.通过元素节点信息ID来定位该元素,使用id来定位元素;id定位元素效率高于XPath。
# conding=utf-8
from selenium import webdriver #导入web驱动模块
driver = webdriver.Firefox() #初始化火狐浏览器
driver.maximize_window() #浏览器窗口最大化
driver.implicitly_wait(6) #设置隐式等待
driver.get("https://www.baidu.com") #通过get站点打开url站点
try:
driver.find_element_by_id("kw") #利用find_element_by_id()方法来定位元素对象
print('test pass: ID found')
except Exception as e:
print("Exception found" ,format(e))