PythonSelenium基本操作

编程

一、简介

selenium一个核心是WebDriver,WebDriver启动目标浏览器,并绑定到指定端口,然后与该端口直接进行通信。

安装selenium:

pip install selenium

在使用的时候可能遇到下面的错误:

"geckodriver" executable needs to be in PATH

"chromedriver" executable needs to be in PATH

说明需要driver,Firefox可以通过:geckodriver下载

Chrome要先看一下对应的版本,在Chrome浏览器中输入:

chrome://version/

然后可以到下面的地址下载对应版本的driver:

chromedriver下载1

chromedriver下载2

下载之后最后放在path中,对于python来说,可以放在安装目录的scripts目录下

二、打开链接

from selenium import webdriver

browser = webdriver.Firefox()

# browser = webdriver.Firefox(executable_path=r"C:softlanpython3Scriptsgeckodriver.exe")

# browser = webdriver.Chrome()

browser.get("https://www.baidu.com/index.php?tn=monline_3_dg")

如果driver没有放在path目录中,那么就可以指定了driver的存放路径。

三、打开本地文件

from selenium import webdriver

driver = webdriver.Firefox()

file_path = r"file:///F: mp able.html"

driver.get(file_path)

webdriver不仅仅可以打开本地的文件,这非常方便我调试。

四、操作浏览器

from selenium import webdriver

import time

SLEEP_TIME = 3

driver = webdriver.Firefox()

file_path = r"file:///F: mp able.html"

driver.get(file_path)

# 暂停一个时间,方便观察执行的操作

time.sleep(SLEEP_TIME)

# 设置浏览器宽400、高400

driver.set_window_size(400, 400)

time.sleep(SLEEP_TIME)

# 将浏览器最大化显示

driver.maximize_window()

time.sleep(SLEEP_TIME)

driver.get("https://www.baidu.com/index.php?tn=monline_3_dg")

time.sleep(SLEEP_TIME)

# 回退一个页面

driver.back()

time.sleep(SLEEP_TIME)

# 前进一个页面

driver.forward()

time.sleep(SLEEP_TIME)

# 关闭当前窗口

driver.close()

time.sleep(SLEEP_TIME)

# 并关浏览器

driver.quit()

如上webdriver提供了很多操作浏览器的接口,一般比较少用,因为我们很多时候都不希望打开浏览器,只希望获取结果。

# options = webdriver.FirefoxOptions()

options = webdriver.ChromeOptions()

options.headless = True

# driver = webdriver.Firefox(options=options)

driver = webdriver.Chrome(options=options)

如果不想打开浏览器,可以headless设置为True

五、执行JS

很多时候,我们希望借助于JS的强大功能,所以我们需要执行JS,比如我们要滚动窗口,webdriver并没有提供相应的接口,我们就可以通过JS来实现。

from selenium import webdriver

import time

SLEEP_TIME = 3

driver = webdriver.Firefox()

file_path = r"file:///F: mp able.html"

driver.get(file_path)

time.sleep(SLEEP_TIME)

# 将页面滚动条拖到底部

jsCode = r"document.documentElement.scrollTop=100000"

driver.execute_script(jsCode)

time.sleep(SLEEP_TIME)

# 将滚动条移动到页面的顶部

jsCode = r"document.documentElement.scrollTop=0"

driver.execute_script(jsCode)

time.sleep(SLEEP_TIME)

# 获取h1元素并隐藏,把nav的字体颜色修改为blue

h1 = driver.find_element_by_tag_name("h1")

nav = driver.find_element_by_id("nav")

driver.execute_script(r"arguments[0].style.display="none";arguments[1].style.color="blue"", h1, nav)

time.sleep(SLEEP_TIME)

# 并关浏览器

driver.quit()

获取元素可以参考前面提到的获取元素的介绍,在JS中可以使用arguments参数,arguments是一个数组,存放的就是传入的元素参数。

table.html的内容如下:

<!DOCTYPE html>

<html>

<head>

<title>title</title>

<style type="text/css">

#container{

height: 10000px

}

#nav{

height: 20px;

width: 800px;

font-size: 30px;

color: red;

}

</style>

</head>

<body>

<h1 name="th1">This is H1</h1>

<div id="nav">nav</div>

<div id="container"></div>

<div>footer</div>

</body>

</html>

以上是 PythonSelenium基本操作 的全部内容, 来源链接: utcz.com/z/510887.html

回到顶部