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 webdriverbrowser = 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 webdriverdriver = webdriver.Firefox()
file_path = r"file:///F: mp able.html"
driver.get(file_path)
webdriver不仅仅可以打开本地的文件,这非常方便我调试。
四、操作浏览器
from selenium import webdriverimport 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 webdriverimport 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