Selenium3+Python3环境搭建

安装python

  • 官网直接下载当前最新版的python
  • 百度搜索Python3.6安装步骤
    • Python安装步骤:自行百度,暂不提供

安装selenium

  • 安装好Python3之后,默认就会有pip,使用pip进行安装:
pip install selenium

安装Firefox geckodriver

  • 下载最新版geckodriver
  • 解压下载的驱动(该软件无需安装,解压缩即可)
    • 比如解压缩到路径: D:/browser_drivers/
  • 添加geckodriver环境变量
    • 将解压缩后的geckodriver路径添加的Windows环境变量中
  • 添加Firefox环境变量
    • 添加Firefox的可执行程序路径到环境变量中

WebDriver下载地址备用

Chromedriver下载地址

Chromedriver备用地址

IEdriver下载地址

IEdriver备用地址

firefox下载地址

所有下载地址

Selenium简要教程

  • 环境搭建验证
# 打开CMD窗口,输入以下验证浏览器是否正常打开
python

from selenium import webdriver

driver=webdriver.Firefox()

driver.get("https://www.baidu.com")
  • 贴出一段简要的代码,仅供参考,这段代码做了以下几件事:
    • 打开Firefox浏览器
    • 打开baidu页面
    • 输入搜索内容
    • 点击搜索
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re

class Test8(unittest.TestCase):
    def setUp(self):
        #打开火狐浏览器
        self.driver = webdriver.Firefox()
        #设置超时时间为30s
        self.driver.implicitly_wait(30)
        #设置URL
        self.base_url = "https://www.baidu.com/"
        self.verificationErrors = []
        self.accept_next_alert = True
    
    def test_8(self):
        driver = self.driver
        #打开URL
        driver.get(self.base_url + "/")
        #延时
        time.sleep(4)
        #清空文本框
        driver.find_element_by_id("kw").clear()
        #输入搜索内容
        driver.find_element_by_id("kw").send_keys("12306")
        time.sleep(4)
        #点击搜索
        driver.find_element_by_id("su").click()
        time.sleep(4)
    
    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException as e: return False
        return True
    
    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException as e: return False
        return True
    
    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True
    
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
posted @ 2019-12-31 15:19  锤子哥  阅读(267)  评论(0)    收藏  举报