Python模拟浏览器操作 selenium使用讲解、selenium定位元素的八种方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haeasringnar/article/details/82316724
1、什么是selenium

selenium: 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。它可以让你操作你的浏览器,让浏览器自动化的去做操作。点击按钮、输入文本、跳转等。

2、安装selenium

建议在虚拟环境中操作

pip install selenium
3、浏览器驱动

例如: 通过selenium操作谷歌浏览器:
下载操作谷歌浏览器驱动的页面
http://chromedriver.storage.googleapis.com/index.html
谷歌驱动和谷歌浏览器版本之间的映射表
http://blog.csdn.net/huilan_same/article/details/51896672

4、selenium定位元素的八种方法
find_element_by_id                  通过id定位元素
find_element_by_name                通过name定位元素
find_element_by_xpath               通过xpath匹配定位元素
find_element_by_link_text           通过链接link定位元素
find_element_by_partial_link_text   通过超文本link定位元素
find_element_by_tag_name            通过tag name就是标签名称定位元素如input p等
find_element_by_class_name          通过classname定位元素
find_element_by_css_selector        通过css定位元素

#下面是查找多个元素(这些方法将返回一个列表):

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

实例:操作chrome浏览器设置百度显示图片为50张后,搜索美女图片并打开。

from selenium import webdriver
from time import sleep

# 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的
driver = webdriver.Chrome(r'/home/aeasringnar/chromedriver')
# 用get打开百度页面
driver.get("http://www.baidu.com")
# 查找页面的“设置”选项,并进行点击
driver.find_elements_by_link_text('设置')[0].click()
sleep(2)
# 打开设置后找到“搜索设置”选项,设置为每页显示50条
driver.find_elements_by_link_text('搜索设置')[0].click()
sleep(2)
m = driver.find_element_by_id('nr')
sleep(2)
# m.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
m.find_element_by_xpath('.//option[3]').click()
sleep(2)

# 点击保存设置
driver.find_elements_by_class_name("prefpanelgo")[0].click()
sleep(2)

# 处理弹出的警告页面   确定accept() 和 取消dismiss()
driver.switch_to_alert().accept()
sleep(2)
# 找到百度的输入框,并输入 美女
driver.find_element_by_id('kw').send_keys('美女')
sleep(2)
# 点击搜索按钮
driver.find_element_by_id('su').click()
sleep(2)
# 搜索并打开第一个页面
driver.find_elements_by_link_text('美女_百度图片')[0].click()
sleep(2)

# 关闭浏览器
driver.quit()

猜你喜欢

转载自blog.csdn.net/haeasringnar/article/details/82316724