📅  最后修改于: 2023-12-03 15:36:37.199000             🧑  作者: Mango
Selenium是一个用于Web应用程序测试的库,同时也可以用于对浏览器进行自动化处理。它可以模拟人工在浏览器中的操作,例如点击、滚动、输入等,以及对UI进行提取。
Selenium可以通过pip进行安装,如下所示:
pip install selenium
同时,还需要下载对应浏览器的驱动程序,例如Chrome浏览器需要下载chromedriver,可以通过以下网址进行下载:
ChromeDriver - WebDriver for Chrome
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome("/path/to/chromedriver")
# 打开网页
driver.get("https://www.google.com")
我们可以通过webdriver.Chrome()
来创建一个Chrome浏览器对象,并将chromedriver的路径作为参数传入。然后可以通过get()
函数来访问指定的网址。执行代码后,就会弹出一个Chrome浏览器窗口,并访问到了指定的网站。
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome("/path/to/chromedriver")
# 打开网页
driver.get("https://www.baidu.com")
# 查找并输入搜索框
input_box = driver.find_element_by_id("kw")
input_box.send_keys("Selenium")
# 点击搜索按钮
search_btn = driver.find_element_by_id("su")
search_btn.click()
我们可以通过find_element_by_id()
、find_element_by_name()
、find_element_by_class_name()
、find_element_by_css_selector()
等方法查找到相应的页面元素,并对其进行操作。例如,在百度页面中,我们可以通过find_element_by_id()
查找到搜索框元素,然后通过send_keys()
输入相应的搜索词,在通过find_element_by_id()
查找到搜索按钮元素,然后通过click()
方法模拟点击操作,就可以进行搜索了。
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome("/path/to/chromedriver")
# 打开网页
driver.get("https://www.baidu.com")
# 查找并输入搜索框
input_box = driver.find_element_by_id("kw")
input_box.send_keys("Selenium")
# 点击搜索按钮
search_btn = driver.find_element_by_id("su")
search_btn.click()
# 等待页面跳转
time.sleep(2)
# 获取新窗口的句柄
handles = driver.window_handles
driver.switch_to.window(handles[-1])
# 点击第一条搜索结果
first_result = driver.find_element_by_css_selector("#content_left h3.t a")
first_result.click()
# 切换到新的标签页
handles = driver.window_handles
driver.switch_to.window(handles[-1])
# 关闭新的标签页
driver.close()
# 切换回原来的标签页
handles = driver.window_handles
driver.switch_to.window(handles[0])
# 清空输入框内容
input_box.clear()
# 关闭浏览器
driver.quit()
我们还可以对于多窗口的情况进行处理。例如,在搜索后会打开新的标签页,我们可以通过driver.window_handles
获取到所有窗口的句柄,然后通过switch_to.window()
方法切换到相应的窗口进行操作。当需要关闭新的标签页时,可以使用close()
方法关闭当前窗口,当需要切换回原来的标签页时,也可以用switch_to.window()
方法切换回原始页面进行操作。
除了以上的一些常用操作之外,Selenium还提供了许多其他的功能,例如模拟键盘操作、模拟鼠标操作、截图、弹窗等,可以进一步了解Selenium的文档和API。另外,Selenium也可以结合其他第三方库一起使用,例如使用BeautifulSoup来解析浏览器中的HTML内容,使用pandas来进行数据处理,这样可以完成更加复杂的任务。
通过使用Selenium库,我们可以对浏览器进行自动化处理,模拟人工操作来完成各种任务。同时,Selenium也提供了丰富的API和功能,可以满足各种需求。但是需要注意的是,自动化处理也可能会被检测到并被封禁,因此需要谨慎使用。