Python+Selenium用法(二)

这篇具有很好参考价值的文章主要介绍了Python+Selenium用法(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前提

from selenium import webdriver
driver = webdriver.Chrome()

一、下拉框

from selenium.webdriver.support.select import Select  #导包

#1、创建下拉框元素对象
ele = driver.find_element(By.ID, 'id')

#2、创建下拉框对象
se = Select(ele)

#3、创建操作下拉框对象
options = se.options  #获取所有选项

se.select_by_index(0)   #根据索引选中,从0开始
se.select_by_value('o1')    #根据value属性选中
se.select_by_visible_text('o1')    #根据文本属性选中

se.deselect_all()   #多选时,取消所有选中
se.select_by_index(0)   #多选时,根据索引取消选中
se.deselect_by_value('o1')  #多选时,根据value属性取消选中
se.deselect_by_visible_text('o1')   #多选时,根据文本属性取消选中

二、多窗口

点击某个按钮后,页面是在一个新的浏览器中出现,浏览器可能已经切换到新页面,而driver还停留在旧页面文章来源地址https://www.toymoban.com/news/detail-648379.html

'''第一种方法'''
#获取窗口句柄
windows = driver.window_handles

#切换窗口,新窗口通常为最后一个,若为其他位置则自行处理
driver.switch_to.window(windows[-1])
'''第二种方法'''
print(driver.current_window_handle) #当前窗口句柄
print(driver.window_handles)    #所有句柄

h = driver.current_window_handle
hs = driver.window_handles
for i in hs:
    if i!=h :
        driver.switch_to.window(i)

三、弹窗

#点击弹窗
driver.find_element(By.ID, 'alert,confirm,prompt').click()

#获取弹窗对象
ele = driver.switch_to.alert #confirm,prompt

#操作弹窗
print(ele.text)     #获取文本
ele.send_keys('  ')     #弹窗输入
ele.accept()    #确定
ele.dismiss()   #取消

四、截图

driver.get_screenshot_as_file("图片保存路径")

#或者
#截取当前页面
driver.save_screenshot('photo.png')

#或者
#截屏并保存到文件中
element.screenshot('路径.png')

#截屏,以二进制保存在photo变量中
photo = element.screenshot_as_png

五、执行JS脚本

#执行js脚本
driver.execute_script("document.documentElement.scrollTop=1000")

#执行js脚本并获取执行结果
text = driver.execute_script("return document.getElementById('su').value")
print(text)

六、Cookie复用

说明

'''
cookie复用,跳过登录步骤
'''
#1、首次运行,手动登录jinwangzhan

#2、记录cookie信息到本地
cookie = driver.get_cookies()

#3、后续再次登录时,传入本地cookie信息,登录进网站
for i in cookie:
    driver.add_cookie(i)

代码示例

#导包
import os.path
import yaml
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait

if not os.path.exists("resource"):
    os.mkdir("resource")

#判断cookie是否存在,有则使用cookie跳过登录,无则手动登录
if os.path.exists("resource/cookie.yaml"):
    #读取cookie,传入浏览器中
    cookie = yaml.safe_load(open("resource/cookie.yaml"))
    for i in cookie:
        driver.add_cookie(i)
    #进入网站
    driver.get("网址")
else:
    #扫码登录,等待页面加载
    WebDriverWait(driver, 60).until(expected_conditions.url_contains("随便一个条件"))

    #存入cookie信息到本地
    cookie = driver.get_cookies()
    with open("resource/cookie.yaml", "w") as f:
        yaml.safe_dump(cookie, f)

time.sleep(3)
driver.quit()

七、滚动条操作

'''
selenium中并没有直接操作的方法,可通过JavaScript脚本
'''
js = driver.window.scrollTo(num1, num2) #上边距,垂直滚动条

driver.execute_script(js)

八、上传文件

driver.find_element(By.XPATH, 'xpath').send_keys("文件路径")

到了这里,关于Python+Selenium用法(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python + selenium 自动化测试框架

    项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里。 写通用的代码的。 其他3层想要的话,就可以直接调用。 例如: 读取测试数据的代码,读取配置信息的代码;截图的代码的,定位元素的代码等等 2.功能层(页面层) 功

    2023年04月13日
    浏览(44)
  • python爬虫(七)--------selenium自动化

    查找方法(python3.7之前版本) find_element_by_id 根据id属性来定位 find_element_by_name 根据name元素来定位 find_element_by_xpath 根据xpath语法来定位 find_element_by_tag_name 根据标签名来定位 find_element_by_class_name 根据class的名字来定位 find_element_by_css_selector 根据css选择器来定位 以下两种方法都

    2024年01月16日
    浏览(63)
  • python selenium 自动化登录页面

    2024年02月10日
    浏览(47)
  • python学习-自动化测试Selenium

     自动化测试Selenium Selenium简介 第一个Selenium应用 Selenium Python API Selenium WebDriver Selenium 初始化浏览器 Selenium导航到URL Selenium定位元素 Selenium By类 Selenium WebElement类 Selenium页面交互 Selenium ActionChains Selenium鼠标操作 Selenium键盘操作 Selenium调用JavaScript Selenium等待机制 Selenium expected

    2024年01月18日
    浏览(47)
  • Python Selenium 自动化的笔记

            大部分URL都是https开头,但是遇到http开头的URL的时候,浏览器很可能会把http自动识别成https,导致无法进入正确的URL。使用driver.get()就会经常遇到这种情况,遇到这种情况我使用的方式是让uiautomation输入一遍完整的URL,避免浏览器或者driver.get()函数自动补全http为ht

    2024年02月04日
    浏览(60)
  • 自学Python+Selenium自动化测试

            俗话说的好,书读百遍不如手过一遍,而编程这东西是看书看视频一万遍都不如你自己多敲代码、写脑图、总结分享转换成自己的内容来的实在。         今天我就把最近学的(二) Selenium核心WebDriver API 简单总结一下,方便自己以后找出来看看。         一

    2024年02月05日
    浏览(50)
  • Python中的selenium库的基本用法

    Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 通过此行代码可以快速在Python中安装selenium库 pip install Selenium 另外,我们仍需要安装浏览器驱动 Selenium3.x调用浏览器必须有一个webdr

    2023年04月20日
    浏览(38)
  • Python自动化测试之Selenium详解

    1.安装 完成自动化测试,需要配置三个东西。 selenium :pip就可以了 chrome :浏览器下载一个谷歌浏览器就行 chrome-driver :下载地址http://chromedriver.storage.googleapis.com/index.html 这里需要对应到自己的浏览器版本下载。 从浏览器上下载到本地后,本机mac上自动保存至Download/目录下

    2024年03月28日
    浏览(46)
  • Python自动化测试利器selenium详解

    Selenium是一种常用的Web自动化测试工具,支持多种编程语言和多种浏览器,可以模拟用户的交互行为,自动化地执行测试用例和生成测试报告。Selenium基于浏览器驱动实现,结合多种定位元素的方法,可以实现各种复杂的Web应用程序的测试 自动化测试指软件测试的自动化,在

    2024年02月16日
    浏览(48)
  • python自动化测试工具selenium

    selenium 是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:Selenium。相对于另外一款web自动化测试工具QTP来说有如下优点: 免费开源轻量级,不同语言只需要一个体积很小的依赖包 支持多种系统,包括Windows,Mac,Linux 支持多种浏

    2024年02月08日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包