Selenium的安装与Firefox配置以及Selenium基本用法(超详细)

前言

先来看看Selenium的定义:

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

Selenium安装

1.PIP安装:

在pip路径下输入下面代码:


pip install selenium

复制代码

2.通过Pycharm安装:

Pycharm软件中输入:File-->Default Settings

 

 

 

 

 

 

Firefox环境配置

1.网上下载火狐浏览器,很简单,不用多说

2.firefox路径添加环境变量

找到firefox的路径,比如C:\Program Files\Mozilla Firefox,找到后添加一下:

 

 

 

**3.下载geckodriver,**下载网址:

https://github.com/mozilla/geckodriver/releases

下载完成后把geckodriver.exe放在firefox的安装路径下(不要忘记)

4.在firefox中下载Selenium IDE

 

 

 

然后点击:获取更多组件,输入Selenium IDE,下载安装即可。

5.验证

可以在命令窗口下输入:


firefox.exe

复制代码

看看是否能正常跳转到网页。

再可以在Python编辑器上输入:


from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://baidu.com')

复制代码

如果成功就正常跳转了。


Python-selenium各种用法详解(元素拖拽,页面切换等)

上面讲了selenium的安装

现在讲一下selenium的具体的用法,至于基本的方法大家可以直接查看selenium API,这里只写一部分:

单个元素选取

  • find_element_by_id

  • find_element_by_name

  • find_element_by_xpath

  • find_element_by_link_text

  • find_element_by_partial_link_text

  • find_element_by_tag_name

  • find_element_by_class_name

  • find_element_by_css_selector

多个元素选取

  • find_elements_by_name

  • find_elements_by_xpath

  • find_elements_by_link_text

  • find_elements_by_partial_link_text

  • find_elements_by_tag_name

  • find_elements_by_class_name

  • find_elements_by_css_selector

Selenium具体用法

1.页面交互

下面我举例说明,打开百度浏览器,输入“selenium”,并进行搜索,打印源代码,具体代码如下:


def pageInteraction():
   driver = webdriver.Firefox()
   driver.get('http://www.baidu.com')
   # 隐示等待,为了等待充分加载好网址
   driver.implicitly_wait(5)
   write = driver.find_element_by_id("kw")
   write.send_keys("Selenium")
   # 点击
   driver.find_element_by_id('su').click()
   try:
       # 显示等待,其中5的解释:5秒内每隔0.5毫秒扫描1次页面变化,直到指定的元素
       wait = WebDriverWait(driver, 5)
       wait.until(lambda driver: driver.find_element_by_id("content_left"))
       # 打印源代码
       print(driver.page_source)

   except TimeoutException:
       print("查询元素超时")
   finally:
       driver.close()

复制代码

2.页面元素推拽

需要导入ActionChains包,url网址来源于网络


def elementDragging():
   try:
       driver = webdriver.Firefox()
       url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
       driver.get(url)
       driver.implicitly_wait(5)
       # 切换到元素所在的frame
       driver.switch_to.frame("iframeResult")
       # 起点
       start = driver.find_element_by_id("draggable")
       # 终点
       end = driver.find_element_by_id("droppable")

       actions = ActionChains(driver)
       actions.drag_and_drop(start, end)
       # 执行
       actions.perform()
   except Exception:
       print("exception")
   finally:
       driver.close()

复制代码

3.页面切换

通过百度搜索关键词并打开一个网页,切换到新的窗口页面,再打开第三个页面

主要用到了下面三个方法:

  • current_window_handl:获得当前窗口句柄

  • window_handles:返回所有窗口的句柄到当前会话

  • switch_to_window():切换窗口函数


def pageSwitching():
   driver = webdriver.Firefox()
   driver.get('http://www.baidu.com')
   #获取当前百度界面的窗口句柄
   BD_windows = driver.current_window_handle
   #打印
   print(BD_windows)
   # 隐示等待,为了等待充分加载好网址
   driver.implicitly_wait(5)

   write = driver.find_element_by_id("kw")
   write.send_keys("CSDN")
   # 点击
   driver.find_element_by_id('su').click()
   try:
       #打开一个网页
       driver.find_element_by_link_text(u'CSDN-专业IT技术社区').click()
       # 隐示等待,为了等待充分加载好网址
       driver.implicitly_wait(5)
       #打印所有的窗口
       print(driver.window_handles)
       # 隐示等待,为了等待充分加载好网址
       driver.implicitly_wait(5)
       #窗口切换到第二个网页
       driver.switch_to_window(driver.window_handles[1])
       #点击第二个网页的"写博客"按钮
       driver.find_element_by_link_text(u'写博客').click()
       time.sleep(5)

   except Exception:
       print("exception")
   finally:
       driver.quit()

复制代码

4.弹窗处理


alert = driver.switch_to_alert()
print(alert .text)
alert .accept()

复制代码

下面是全部的源码:


# coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver import ActionChains
import time

#页面交互
def pageInteraction():
   driver = webdriver.Firefox()
   driver.get('http://www.baidu.com')
   # 隐示等待,为了等待充分加载好网址
   driver.implicitly_wait(5)
   write = driver.find_element_by_id("kw")
   write.send_keys("Selenium")
   # 点击
   driver.find_element_by_id('su').click()
   try:
       # 显示等待,其中5的解释:5秒内每隔0.5毫秒扫描1次页面变化,直到指定的元素
       wait = WebDriverWait(driver, 5)
       wait.until(lambda driver: driver.find_element_by_id("content_left"))
       # 打印源代码
       print(driver.page_source)

   except TimeoutException:
       print("查询元素超时")
   finally:
       time.sleep(3)
       driver.close()

#页面元素拖拽
def elementDragging():
   try:
       driver = webdriver.Firefox()
       url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
       driver.get(url)
       driver.implicitly_wait(5)
       # 切换到元素所在的frame
       driver.switch_to.frame("iframeResult")
       # 起点
       start = driver.find_element_by_id("draggable")
       # 终点
       end = driver.find_element_by_id("droppable")

       actions = ActionChains(driver)
       actions.drag_and_drop(start, end)
       # 执行
       actions.perform()
   except Exception:
       print("exception")
   finally:
       driver.close()

#页面切换
def pageSwitching():
   driver = webdriver.Firefox()
   driver.get('http://www.baidu.com')
   #获取当前百度界面的窗口句柄
   BD_windows = driver.current_window_handle
   #打印
   print(BD_windows)
   # 隐示等待,为了等待充分加载好网址
   driver.implicitly_wait(5)

   write = driver.find_element_by_id("kw")
   write.send_keys("CSDN")
   # 点击
   driver.find_element_by_id('su').click()
   try:
       #打开一个网页
       driver.find_element_by_link_text(u'CSDN-专业IT技术社区').click()
       # 隐示等待,为了等待充分加载好网址
       driver.implicitly_wait(5)
       #打印所有的窗口
       print(driver.window_handles)
       # 隐示等待,为了等待充分加载好网址
       driver.implicitly_wait(5)
       #窗口切换到第二个网页
       driver.switch_to_window(driver.window_handles[1])
       #点击第二个网页的"写博客"按钮
       driver.find_element_by_link_text(u'写博客').click()
       time.sleep(5)

   except Exception:
       print("exception")
   finally:

       driver.quit()

if __name__ == '__main__':
    pageInteraction()
    #pageSwitching()
    #elementDragging()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python2已经不再被官方支持,建议您使用Python3来进行开发。以下是Python3中Selenium安装配置步骤: 1. 安装Python3:首先,您需要在您的计算机上安装Python3。您可以从Python官方网站(https://www.python.org/downloads/)下载适合您操作系统的Python3版本,并按照安装向导进行安装。 2. 安装Selenium库:打开命令行终端,运行以下命令来安装Selenium库: ``` pip install selenium ``` 3. 下载浏览器驱动:Selenium需要与特定的浏览器驱动程序进行交互。您需要根据您使用的浏览器类型和版本下载相应的驱动程序。常见的浏览器驱动程序如下: - Chrome浏览器:ChromeDriver(https://sites.google.com/a/chromium.org/chromedriver/) - Firefox浏览器:geckodriver(https://github.com/mozilla/geckodriver/releases) - Safari浏览器:SafariDriver(https://webkit.org/blog/6900/webdriver-support-in-safari-10/) 下载并解压缩适合您浏览器版本的驱动程序,并将其所在路径添加到系统环境变量中。 4. 编写Selenium代码:现在,您可以使用Python编写Selenium代码来进行自动化测试或网页爬取等操作。以下是一个简单的示例代码: ```python from selenium import webdriver # 创建浏览器驱动对象 driver = webdriver.Chrome() # 如果使用的是Chrome浏览器,需要指定驱动程序的路径 # 打开网页 driver.get("https://www.example.com") # 进行操作,例如点击按钮、填写表单等 ... # 关闭浏览器 driver.quit() ``` 您可以根据具体需求,使用Selenium提供的方法进行更多操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值