selenium的用法

selenium的基本用法

一、Selenium

Selenium是一款自动化测试工具,支持Chrome,Safari,Firefox 等主流界面式浏览器;支持多种语言开发,比如Java,C,Python等

二、文档地址

  • https://selenium-python-zh.readthedocs.io/en/latest/

三、安装

pip install selenium

四、驱动下载

http://npm.taobao.org/mirrors/chromedriver

注意下载驱动的时候,应该先看一下谷歌浏览器的版本号。
在这里插入图片描述
找到版本号,去下载对应的驱动就好了。如果没有下载相近的。

五、使用

#导入 webdriver
from selenium import webdriver
    
# 要想调用键盘按键操作需要引入keys包
from selenium.webdriver.common.keys import Keys
import time
#无界面浏览器相关设置
# 创建chrome参数对象
opt = webdriver.ChromeOptions()
#把chrome设置成为无界面模式
opt.set_headless()
#创建chrome无界面对象
driver = webdriver.Chrome(
    options=opt, executable_path='/Users/ljh/Desktop/chromedriver'
)
#创建chrome有界面对象
#调用Chrome浏览器创建浏览器对像(指定一下位置)
driver = webdriver.Chrome(
    executable_path='/Users/ljh/Desktop/chromedriver'
)
#打开浏览器,模拟浏览器请求页面
driver.get('http://www.baidu.com/')
#获取页面的信息
html = driver.page_source
print(html)
# 获取页面名为 wrapper的id标签的文本内容
data = driver.find_element_by_id("wrapper").text
#获取标签的属性
attrvaule = driver.find_element_by_id("wrapper").get_attribute('class')
#打印数据内容
print(data)
#打印标题数据
print(driver.title)
#向百度的搜索框输入搜索关键字
driver.find_element_by_id('kw').send_keys('美女')
#百度搜索按钮,click() 是模拟点击
driver.find_element_by_id('su').click()
#获取当前页面的cookies()
cookies = driver.get_cookies()
cookie = ''
for item in cookies:
    cookie += item['name']+item['value']+' ;'
    print(cookie[:-1])
#全选输入框中的内容ctrl+a 
print(driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a'))
# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
#清空输入框内容
driver.find_element_by_id('kw').clear()
#输入框重新输入内容
driver.find_element_by_id('kw').send_keys('风景')
#模拟回车键
driver.find_element_by_id('su').send_keys(Keys.RETURN)
#获取当前的url
currentUrl = driver.current_url
print(currentUrl)
#截取网页页面(生成当前的页面快照并保存)
driver.save_screenshot('baidu.png')
#睡眠7秒
time.sleep(7)
# 关闭浏览器
driver.quit()
# 关闭当前页面,如果只有一个页面,会关闭浏览器
driver.close()


小练习(模拟浏览器搜索内容,并且截图,自动跳转下一页)
from selenium import webdriver
import time

url = 'https://www.baidu.com/'
#谷歌浏览器的路径
option = webdriver.ChromeOptions()
option.binary_location=r'E:\Download\Google\Chrome\Application\chrome.exe'
driver = webdriver.Chrome(
    executable_path = 'E:\selenium驱动\chromedriver.exe'
    #驱动的路径
)
driver.get(url)
#保存一下百度一下的源码
with open('baidu.html','w') as f:
    f.write(driver.page_source)
input = driver.find_element_by_id('kw')
input.send_keys('王一博')
btn = driver.find_element_by_id('su')
btn.click()
#还可以截图
time.sleep(2)
driver.save_screenshot('baidu.dpng')
#可以让他自己点击页
btn = driver.find_element_by_class_name('n')
btn.click()

六、设置代理

opt = webdriver.ChromeOptions()
opt.add_argument("--proxy-server=http://118.20.16.82:9999")

七、添加Cookie

self.browser.add_cookie({
        'domain': '.xxxx.com',  
        'name': cookie['name'],
        'value': cookie['value'],
        'path': '/',#哪个页面添加Cookie
        'expires': None
    })

八、显示等待

显式等待是你在代码中定义等待一定条件发生后再进一步执行你的代码。 最糟糕的案例是使用time.sleep(),它将条件设置为等待一个确切的时间段。 这里有一些方便的方法让你只等待需要的时间。WebDriverWait结合ExpectedCondition 是实现的一种方式。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

九、隐式等待

如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素。 默认等待时间是0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期。

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")

十、执行JS

driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')

十一、设置无页面

options = webdriver.ChromeOptions()
# 添加无界面参数
options.add_argument('--headless')
browser = webdriver.Chrome(options=options)

十二、切换页面

无页面就是,不打开页面仍然可以取到值。

# 获取当前所有句柄(窗口)
all_handles = browser.window_handles
# 切换browser到新的窗口,获取新窗口的对象
browser.switch_to.window(all_handles[1])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium是一个用于自动化Web浏览器的工具,它可以模拟用户在浏览器中的操作,例如点击、输入文本、提交表单等。下面是Selenium的一些常见用法: 1. 安装Selenium:首先需要安装Selenium库,可以使用pip命令进行安装,如:pip install selenium。 2. 配置浏览器驱动:Selenium需要与浏览器驱动程序进行交互,不同的浏览器需要对应不同的驱动程序。例如,使用Chrome浏览器需要下载ChromeDriver,Firefox浏览器需要下载geckodriver。将驱动程序添加到系统路径中或指定驱动程序的路径。 3. 创建WebDriver对象:在代码中导入selenium库,并创建一个WebDriver对象,用于控制浏览器的行为。例如,使用Chrome浏览器可以使用以下代码创建WebDriver对象: ``` from selenium import webdriver driver = webdriver.Chrome() ``` 4. 打开网页:使用WebDriver对象的get()方法打开指定的网页。例如,打开百度首页可以使用以下代码: ``` driver.get("https://www.baidu.com") ``` 5. 查找元素:使用WebDriver对象的find_element()方法来查找页面上的元素。可以通过元素的id、class、标签名等属性进行查找。例如,通过id查找搜索框可以使用以下代码: ``` search_box = driver.find_element_by_id("kw") ``` 6. 操作元素:对查找到的元素进行操作,例如输入文本、点击按钮等。可以使用元素对象的send_keys()方法输入文本,使用click()方法点击按钮。例如,输入搜索关键字并点击搜索按钮可以使用以下代码: ``` search_box.send_keys("Selenium") search_button = driver.find_element_by_id("su") search_button.click() ``` 7. 关闭浏览器:使用WebDriver对象的quit()方法关闭浏览器。例如,关闭浏览器可以使用以下代码: ``` driver.quit() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值