多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何使用Selenium操控firefox和chrome-自动化测试

更新时间:2022-03-23 09:53:23 作者:多测师 浏览:57

  设置环境变量:

  将火狐和chrome的两个驱动所在的文件夹添加到电脑的环境变量中去,文件路径不能有中文

  安装selenium库

  pip install selenium

  chrome 的代码1

  注意:当python连接chrome的时候,不要手动打开chrome浏览器

  会报错:unknown error: DevToolsActivePort file doesn't exist,The process started from chrome location.....

  # coding = utf-8

  from selenium import webdriver

  # 个人资料路径

  user_data_dir = r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'

  # 加载配置数据

  option = webdriver.ChromeOptions()

  option.add_argument(user_data_dir)

  # 启动浏览器配置

  driver = webdriver.Chrome(chrome_options=option, executable_path=r'D:\coship\Test_Framework\drivers\chromedriver.exe')

  driver.get(r'https://www.cnblogs.com/')

如何使用Selenium操控firefox和chrome-自动化测试

  chrome 的代码2

  注意:当python连接chrome的时候,不要手动打开chrome浏览器

  from selenium import webdriver

  chrome_options = webdriver.ChromeOptions()

  #无头点击下载文件,但是有时候失效

  # prefs = {'download.default_directory': p,

  # 'download.prompt_for_download': False,

  # 'download.directory_upgrade': True,

  # 'safebrowsing.enabled': False,

  # 'safebrowsing.disable_download_protection': True}

  downpath="D:\\down"

  chrome_options.add_experimental_option("prefs", {"download.default_directory": downpath,

  "download.prompt_for_download": False, })

  # chrome_options.add_argument("--headless") #无头设置

  # chrome_options.add_argument('--window-size=1920,1080')

  driver = Chrome(chrome_options=chrome_options)

  driver.implicitly_wait(10)

  url = "https://www.baidu.com/"

  driver.get(url)

  firefox:

  from selenium.webdriver.firefox.options import Options

  from selenium.webdriver import Firefox

  from selenium import webdriver

  options = Options()

  options.add_argument('--window-size=1920,1080')

  #options.add_argument('-headless') # 加载无头浏览配置

  profile_path = r'C:\Users\L\AppData\Roaming\Mozilla\Firefox\Profiles\wgc3wo5q.default'

  profile = webdriver.FirefoxProfile(profile_path ) # 指定配置文件地址

  profile.set_preference('browser.download.folderList', 2)

  profile.set_preference('browser.download.manager.showWhenStarting', False) #下载不弹窗

  downpath="D:\\down"

  profile.set_preference('browser.download.dir', downpath) # 指定下载位置

  driver = webdriver.Firefox(profile, options=options) # 加载配置,构建driver

  driver.implicitly_wait(10)

  url = "https://www.baidu.com/"

  driver.get(url)

  验证码登录

  伪代码:

  jt = 'D:\\huohu\\截图' #存放截图的文件夹

  try:

  os.makedirs(jt)

  except:

  pass

  sleep(1)

  driver.find_element_by_id("password").clear()

  sleep(1)

  driver.find_element_by_id("password").send_keys(value) #输入密码

  driver.save_screenshot(jt+'\\sg_save_jietu.png') #截屏

  imgelement = driver.find_element_by_id('validateCodeImg')

  location = imgelement.location # 获取验证码x,y轴坐标

  size = imgelement.size # 获取验证码的长宽

  rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),

  int(location['y'] + size['height'])) # 写成我们需要截取的位置坐标

  i = Image.open(jt+'\\sg_save_jietu.png')

  frame4 = i.crop(rangle) # 使用Image的crop函数,从截图中再次截取我们需要的区域

  yzm_path = (jt+'\\sg_yzm_path.png')

  frame4.save(yzm_path)

  sleep(1)

  rc = RClient('user', 'pwd', '119287', 'e96fec5c66884adf8361579ecce0903f') #接入若快打码

  sleep(1)

  im = open(yzm_path, 'rb').read()

  sleep(1.5)

  yzm=rc.rk_create(im, 3040)["Result"]

  sleep(0.5)

  driver.find_element_by_id("validateCode").clear() #清空验证码

  sleep(1)

  driver.find_element_by_id('validateCode').send_keys(yzm) #输入验证码

  sleep(1.5)

  driver.find_element_by_id("button").click() #确定登录

  以上内容为大家介绍了自动化测试中的如何使用Selenium操控firefox和chrome,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部