selenium基本操作

Posted zqxfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium基本操作相关的知识,希望对你有一定的参考价值。

总结了一下自己自学的一些心得与大家分享一下

下面是自己整理了一些selenium的基础api 

 1 #导入浏览器模块
 2 from selenium import webdriver 
 3 #打开浏览器
 4 drive = webdriver.chorme()
 5 #访问网站
 6 driver.get(url)
 7 #窗口最大化
 8 driver.maximize_window()
 9 #窗口最小化
10 driver.minimize_window()
11 #设置浏览器尺寸
12 driver.set_window_size(1480, 1800)
13 #关闭当前窗口
14 driver.close()
15 #关闭所有窗口
16 driver.quiet
17 #前进
18 driver.forword()
19 #后退
20 driver.back()
21 #刷新
22 driver.refresh()
23 #h获取当前路径
24 driver.current_url
25 #获取当前标题
26 driver.title
27 # elements代表定位一组元素而element单个
28 #根据ID定位单独元素或元素集合
29 driver.find_element_by_id()
30 driver.find_elements_by_id()
31 #根据tag_name定位单独元素或元素集合
32 driver.find_element_by_tag_name()
33 driver.find_elements_by_tag_name()
34 #根据className定位单独元素或者元素集合
35 driver.find_element_by_class_name()
36 driver.find_elements_by_class_name()
37 #根据链接文本定位
38 driver.find_element_by_link_text()
39 driver.find_elements_by_link_text()
40 #根据部分链接文本定位
41 driver.find_element_by_partial_link_text()
42 driver.find_elements_by_partial_link_text()
43 #根据xpath定位
44 driver.find_element_by_xpath()
45 driver.find_elements_by_xpath()
46 #根据name定位
47 driver.find_element_by_name()
48 driver.find_elements_by_name()
49 #根据css定位
50 driver.find_element_by_css_selector()
51 driver.find_elements_by_css_selector()
52 #点击操作
53 el.click
54 #像输入标签输入文本
55 el.send_keys(data)
56 #清空输入框
57 el.clear()
58 #获取文本内容
59 el.text
60 #获取元素属性
61 el.get_attribute(value)
62 #获取元素尺寸
63 el.size
64 #检查元素是否可见?
65 el.is_displayed()?

 ID定位去哪儿网点击邮轮

1 from selenium import webdriver
2 driver = webdriver.Chrome()
3 url = https://www.qunar.com/
4 driver.get(url)
5 driver.find_element_by_id(__link_youlun__).click()
6 driver.back()
7 driver.close()

tag_name定位百度必应搜索

 1 from selenium import webdriver
 2 import time
 3 # 开浏览器
 4 driver = webdriver.Chorme()
 5 # 访问bing搜索
 6 url = https://cn.bing.com/
 7 driver.get(url)
 8 # 通过标签名进行定位,该元素要么唯一,要么是第一个
 9 el = driver.find_element_by_tag_name(input)
10 el.send_keys(selenium)
11 # 通过id定位到搜索按钮
12 el_sub = driver.find_element_by_id(sb_form_go)
13 # 点击搜索
14 el_sub.click()
15 time.sleep(5)
16 driver.close()

class_name定位斗鱼直播翻页

from selenium import webdriver
import time
# 开浏览器
driver = webdriver.Chorme()
# 访问斗鱼
url= https://www.douyu.com/directory/all
driver.get(url)
for i in range(10):
    # 通过class属性对应的值定位到下一页
    el_next = driver.find_element_by_class_name(shark-pager-next)
    # 点击翻页
    el_next.click()
    time.sleep(3)
time.sleep(10)
driver.close()

link_text定位58同城

 1 from selenium import webdriver
 2 import time
 3 # 开一个浏览器
 4 driver = webdriver.Chrome()
 5 # 访问北京58
 6 url = http://bj.58.com/
 7 driver.get(url)
 8 # 通过连接文本(可以跳转的问题)进行定位
 9 el = driver.find_element_by_link_text(租房)
10 el.click()
11 time.sleep(3)
12 driver.close()

partial_link_text定位hao123网站

 1 from selenium import webdriver
 2 import time
 3 # 开一个浏览器
 4 driver = webdriver.Chrome()
 5 # 访问百度
 6 url=https://www.baidu.com/
 7 driver.get(url)
 8 # 通过部分连接文本进行元素定位
 9 # el = driver.find_element_by_partial_link_text(‘hao‘).click()
10 el = driver.find_element_by_partial_link_text(123).click()
11 time.sleep(3)

name定位人人网登录

from selenium import webdriver
import time
# 创建一个浏览器
driver = webdriver.Chorme()
# 访问人人网
url = http://www.renren.com/
driver.get(url)
# 通过name定位到账号输入
user = driver.find_element_by_name(email)
# 输入账号
user.send_keys(17747385860)
# 通过name定位到密码输入
pwd = driver.find_element_by_name(password)
# 输入密码
pwd.send_keys(ab123456)
# 通过id定位到登陆按钮
el_sub = driver.find_element_by_id(login)
# 点击登陆
el_sub.click()
time.sleep(5)
driver.close()

xpath定位新浪微博登录

1 from selenium import webdriver
2 import time
3 driver = webdriver.Chrome()
4 url = https://weibo.com/login.php
5 driver.get(url)
6 driver.find_element_by_xpath(//*[@id="loginname"]).send_keys(147614)
7 driver.find_element_by_xpath(//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input).send_keys(123456)
8 driver.find_element_by_xpath(//*[@id="pl_login_form"]/div/div[3]/div[6]/a).click()
9 time.sleep(5)

css_selector定位淘宝天猫超市

1 from selenium import webdriver
2 import time
3 driver = webdriver.Chrome()
4 url = https://www.taobao.com/
5 driver.get(url)
6 driver.find_element_by_css_selector(body > div.tbh-nav.J_Module.tb-pass.tb-bg > div > ul.nav-hd > li:nth-child(3) > a).click()
7 time.sleep(3)
8 driver.close()

 定位一组元素58同城武汉租房

 1 from selenium import webdriver
 2 import  time
 3 driver = webdriver.Chrome()
 4 url = https://wh.58.com/chuzu/?PGTID=0d100000-0009-ebb3-f717-021d93569bfb&ClickID=2
 5 driver.get(url)
 6 el = driver.find_elements_by_css_selector(body > div.list-wrap > div.list-box > ul > li > div.des > h2 > a.strongbox)
 7 print(el)
 8 for e in el:
 9     print("标题",e.text,"链接",e.get_attribute(href))
10 time.sleep(3)
11 driver.close()

刚开始还不明白一组是干嘛,目前感觉也比较少用,屡次失败解决了这个问题,

可以先找到一个然后再找到上级,这样就可以定位出来一组了

 

以上是关于selenium基本操作的主要内容,如果未能解决你的问题,请参考以下文章

Selenium JavascriptExecutor 详解

Selenium JavascriptExecutor 详解

有没有办法关闭代码片段中的命名建议?

selenium之调用Javascript

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程