selenium基础使用

1.安装chrome

google官网下载ubuntu用的chrome

打开下载文件的目录

sudo dpkg -i google-chrome-stable_current_amd64.deb

2.安装webdriver

(1)查找谷歌浏览器版本

右上角三个点 帮助 关于谷歌浏览器 101.0.4951.64

没有界面的话 google-chrome --version

关闭chrome自动更新!!!!

(2)下载对应版本的webdriver

https://sites.google.com/chromium.org/driver/

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

找支持浏览器相应版本的最新版

是个zip文件 5MB左右

(3)安装

linux下:

解压获得chromedriver,unzip chromedriver_linux664.zip

把chromedriver添加到环境变量 把chromedriver移动到usr/bin下 sudo mv chromedriver /usr/bin

windows下:

解压得到chromedriver.exe

把chromedriver.exe存放在python下面的Scripts文件夹里面,否则会报错。

(4)检验

命令能显示weidriver版本

chromedriver --version

from selenium import webdriver

bro = webdriver.Chrome()

bro.get("https://dig.chouti.com/")

if __name__ == "__main__":

pass

0.打开网页

bro = webdriver.Chrome(options=bro_options)

bro.get("https://dig.chouti.com/")

1.获取网页信息

获取urldriver.current_url

获取cookiesdriver.get_cookies() #注意 一定是cookies

获取网页代码driver.page_source #注意对于动态加载的 先让网页滚动到最下方

2.操作

点击bro.find_element().click()

输入字符bro.find_element().send_keys()

输入按键

from selenium.webdriver.common.keys import Keys

bro.find_element().send_keys(Keys.ENTER)

滚动 bro.execute_script("window.scrollBy(0,3000)") #滚动windows 以加载所有内

截图bro.save_screenshot('a01.png')

变成byte存到数据库

3.给selenium加cookie

(1)登录获取cookies

selenium_cookie_list = bro.get_cookies()

获取cookies,注意是cookies,这个是name-value键值对的形式,转换成字典模式

(2)变成json存储在redis

(3)从redis获取cookies 从json变成字典,还要变会之前的name-value键值对的形式

cookies_list_for_selenium = []

for key in list(cookies_dict.keys()):

cookies_list_for_selenium.append( {'name':key,'value':cookies_dict[key]} )

(4)加cookies

bro.get("https://dig.chouti.com/")#加之前先打开session 如何打开空白session?

bro.delete_all_cookies() #删除原来所有的cookies

for i in range(len(selenium_cookie)):

bro.add_cookie(cookie_dict=selenium_cookie_list[i]) #cookie要一条条加,只能加在当前的session,所以加之前要先打开session

#一条cookies要拼装成 {'name':'abc','value':'123'}

bro.refresh()

bro.get("https://dig.chouti.com/")#再次打开session,这次是带着cookies的

4.执行Javascript

https://blog.csdn.net/yinlin330/article/details/82625454

from selenium import webdriver

driver=webdriver.Chrome()

driver.implicitly_wait(3)

driver.get("http://localhost/")

js = 'document.getElementsByClassName("site-nav-right fr")[0].childNodes[1].removeAttribute("target")'

driver.execute_script(js) #调用js方法,同时执行javascript脚本 手动修改当前页面的html

driver.find_element_by_link_text('登录').click()

driver.find_element_by_id("username").send_keys("yonghuming")

完整程序例子

------------------------------------------------------------------------------------------

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.support.wait import WebDriverWait

import time

my_chrome_options = Options()

my_chrome_options.add_argument('--disable-gpu') #

bro = webdriver.Chrome(service=Service("./chromedriver.exe"), options=my_chrome_options) #用当前路径下的driver 或者放到path下 c:/python0310/script

bro.get(url)

bro.implicitly_wait(5) # 隐性等待 所有加载的控件 最多等待5秒

bro.find_element('id', 's-top-loginbtn').click()

bro.find_element('id', 'TANGRAM__PSP_11__userName').send_keys('asdfasdf') #.clear()

bro.find_element('id', 'TANGRAM__PSP_11__password').send_keys('1234')

bro.find_element('id', 'TANGRAM__PSP_11__submit').click()

bro.find_element('partial link text', '下一页').click() #很好用!!!!

bro.find_element('id', 's-top-loginbtn').get_attribute('style') # 获取属性

bro.find_element('id', 's-top-loginbtn').location # 获取位置

bro.find_element("xpath","//div[@id='J_goodsList']/ul[1]/li[3]/div[1]/div[@class='p-name p-name-type-2']/a[1]/em").text #获取标签text

bro.execute_script("alert('aha')") #执行JS代码

bro.execute_script("window.scrollBy(0,11542)") #滚动windows 以加载所有内容

# print(bro.page_source) #所有加载后的html

cookies = bro.get_cookies() #保存cookies

bro.close() #关闭浏览器

###等待###

https://blog.csdn.net/zmeilin/article/details/106619241?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106619241-blog-121903637.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106619241-blog-121903637.pc_relevant_paycolumn_v3&utm_relevant_index=1

1.强制等待 直接等待x秒

2.隐性等待 等待整个页面加载完 缺点是对于页面由ajax部分加载时,所需要的部分已经完成了 还需要等待整个网页加载完成 浪费时间

implictly_wait(10) 页面全部加载完就进行 最多等待10秒

3.显性等待等待某个组件加载完

#参数

bro_options = webdriver.ChromeOptions()

bro_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片 速度快

bro_options.add_experimental_option('excludeSwitches', ['enable-automation']) #去掉“chrome正受到自动测试软件的控制”

bro_options.add_argument("--disable-blink-features=AutomationControlled")#让window.navigator.webdriver变成false 反爬

#bro_options.add_argument('--headless') #无头

#bro_options.add_argument("start-maximized") # 初始化就最大化

selenium_bro = webdriver.Chrome(options=bro_options )

其他-------------------------------------------------------------------------

iframe标签用于html中的嵌套网页

selenium默认访问不了frame,用bro.switch_to.frame(frame_element)

bro.switch_to.frame(frame_id)

删除cookies

bro.delete_cookie(cookieName)

bro.delete_all_cookies()

1.隐式等待:driver.implicitly_wait()

driver = webdriver.Chrome()

driver.implicitly_wait(10) #获取元素时最多会等待10秒,作用于所有的元素 缺点是要等整个页面加载完

2.显示等待

selenium.webdriver.support.excepted_conditions期望的条件和selenium.webdriver.support.ui.webDriverWait 来配合完成

等待某个页面元素出现完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium 4.8.0是一个自动化测试工具,它可以模拟用户在浏览器上的行为,通过自动化测试来验证网站的功能和性能。下面是Selenium 4.8.0的基础使用: 1. 安装Selenium Selenium可以通过pip命令进行安装,输入以下命令即可: ``` pip install selenium ``` 2. 安装浏览器驱动 Selenium需要使用浏览器驱动来执行测试,不同的浏览器需要不同的驱动。例如,如果你要使用Chrome浏览器,那么你需要下载ChromeDriver,并将其添加到环境变量中。如果你要使用Firefox浏览器,那么你需要下载geckodriver。 3. 编写测试脚本 在Python使用Selenium编写测试脚本,需要先导入Selenium模块,然后创建一个浏览器对象,最后使用浏览器对象进行测试。 例如,以下代码演示了如何使用SeleniumChrome浏览器上打开百度网站,并搜索Selenium: ```python from selenium import webdriver # 创建Chrome浏览器对象 driver = webdriver.Chrome() # 打开百度网站 driver.get("https://www.baidu.com") # 找到搜索框并输入Selenium search_box = driver.find_element_by_id("kw") search_box.send_keys("Selenium") # 点击搜索按钮 search_button = driver.find_element_by_id("su") search_button.click() # 关闭浏览器 driver.quit() ``` 4. 运行测试脚本 在终端中输入以下命令即可运行测试脚本: ``` python test_script.py ``` 以上就是Selenium 4.8.0的基础使用方法,通过学习和使用Selenium,可以大大提高自动化测试的效率和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值