您的位置:

pip selenium的详细阐述

一、安装和使用selenium

1、安装selenium可以使用pip,pip install selenium即可。安装后,我们可以使用selenium进行浏览器自动化操作,进入一个网址、填写表格、点击某个元素、获取结果等等都可以轻松实现。
2、使用selenium的第一步是导入selenium库。通常情况下,使用selenium时会导入selenium.webdriver.Chrome模块或selenium.webdriver.Firefox模块,代表使用Chrome或Firefox浏览器进行操作。
3、使用selenium时可以设置浏览器不自动关闭,这样便于我们手动断点调试。代码如下:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.maximize_window()
# do something here
browser.quit()   # 关闭浏览器

二、使用selenium进行浏览器自动化操作

1、selenium支持对各类页面元素进行定位,通过id、name、class等属性进行元素定位。比如下面的代码就是通过id定位并点击某个元素:

button = browser.find_element_by_id('buttonId')
button.click()

2、使用selenium中的Keys来控制键盘按键,可进行复制、粘贴、删除、切换标签页等操作。例如,模拟Ctrl+A全选,Ctrl+C复制,Ctrl+V黏贴的操作可以如下所示:

from selenium.webdriver.common.keys import Keys

element.send_keys(Keys.CONTROL, 'a')     # 全选
element.send_keys(Keys.CONTROL, 'c')     # 复制
element.send_keys(Keys.CONTROL, 'v')     # 黏贴

3、使用selenium进行截图都很方便,只需调用浏览器对象的截图方法即可。截图可以是整个页面,也可以是某个元素。比如下面的代码就是进行整个页面的截图,并将截图保存至指定路径。

browser.get_screenshot_as_file('D:/screenshot.png')

三、selenium控制浏览器窗口大小

1、selenium的浏览器窗口大小可以有多种方式控制,最常用的是将浏览器最大化或设置指定的窗口大小。例如下面的代码即将浏览器窗口最大化:

browser.maximize_window()

2、也可以使用set_window_size方法来设定浏览器窗口大小。下面的代码就是将浏览器窗口设定为指定大小:

browser.set_window_size(x,y)

四、使用selenium进行表格操作

1、selenium可以通过table标签或者class/id属性进行表格操作。我们可以读取某一行或某一列的数据,也可以通过坐标读取指定单元格的内容。例如下面的代码是通过xpath语法读取某一单元格的内容:

element = driver.find_element_by_xpath("//table/tr[1]/td[1]")

2、对于表格中的checkbox或radiobox,selenium可以通过选中或取消选中对表格进行操作。代码如下:

checkbox = browser.find_element_by_id('checkBoxId')
checkbox.click()

五、selenium等待页面加载完成

1、selenium在加载页面时,有时需要等待一段时间,等到页面加载完成再进行操作。这种等待不是固定时间,也不是等到页面状态通过某种方式判断为加载完成,而是监控页面状态并等待一定时间或监控到页面状态变化时再进行下一步。比较常见的三种等待方式是隐式等待、显式等待和混合等待。下面我们分别介绍这三种方式。

1、隐式等待

在设置隐式等待时,一旦开始等待,就会将等待时间从开始到操作完成的时间一起计算。如果在等待期间一旦发现该元素就立即返回,不必等待整个等待时间。例如,下面的代码将隐式等待设置为10秒,并查找id为"id"的元素:

browser.implicitly_wait(10)
element = browser.find_element_by_id('id')

2、显式等待

在使用显式等待时,我们需要从selenium.webdriver.support.ui模块中导入WebDriverWait和expected_conditions类。WebDriverWait是等待类,可以等待指定的元素在指定的时间内出现。expected_conditions类主要包含各种等待条件。下面的代码就是等待元素出现,并执行相应的操作:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )

六、selenium清空输入框内容

1、当我们需要进行多次输入或修改输入内容时,需要用到清空输入框内容操作。例如,下面的代码就是对输入框先进行清空再输入:

input_box = browser.find_element_by_id('my_id')
input_box.clear()
input_box.send_keys('content')

总结

本文主要讲解了pip selenium的详细阐述内容,介绍了selenium的安装和使用、浏览器自动化操作、控制浏览器窗口大小、表格操作、等待页面加载完成、清空输入框内容等多个方面,都有详细的代码示例。selenium在自动化测试和爬虫方面有着广泛的应用,对于需要频繁进行网页操作的程序员来说,掌握selenium非常有必要。