Selenium+Python简单测试B站视频搜索及播放.

自动化Web测试

测试环境配置

selenium配置

由于原先已经安装过python且在python3.7以后的版本中python自带对应的pip工具.

于是只需要pip install selenium即可.随后需要从官网下载对应的驱动

在下载完驱动以后,通过在代码中指定executable_path即可实现自动化访问浏览器的目的.

Web自动化测试

在自动化的测试部分我们采用B站进行测试.首先需要连接上对应的网址.然后是对网页内的各个元素进行分析,很靠谱的是Chrome可以用快速的工具查找到对应的元素内容.如图所示:
在这里插入图片描述

好,那在获取到了我们对应需要的元素文本内容之后,测试功能就显得简单了首先根据对应对象的类名来获取对应的元素,并通过向元素发送信息的方式来搜索对应的文本内容.然后找到对应的搜索键的元素名字并点击即可.

driver = webdriver.Chrome(executable_path="./chromedriver")
driver.get("https://www.bilibili.com/")

"""测试基本的搜索内容."""
#输入对应的搜索内容.
search_content = driver.find_element_by_class_name("nav-search-keyword")
search_content.send_keys("笑傲君")

#点击搜索.
search_button = driver.find_element_by_class_name("nav-search-btn")
search_button.click()

对应得到的搜索出来的页面如下:
在这里插入图片描述
那么对应的接下来我们实现一个复杂一点的内容,通过搜索查到相应的视频并开始播放.由于具体的过程其实比较复杂,那么就直接上代码好了.首先要做的就是搜索对应的文本内容,这步比较简单就不展开讲了.

# 输入对应的搜索内容,并搜索
driver.get("https://www.bilibili.com/")
driver.find_element_by_class_name("nav-search-keyword").send_keys("原来是笑傲菌殿下")
driver.find_element_by_class_name("nav-search-btn").click()

然后需要跳转到对应的另一个新的页面中需要采用语句去更新当前的driver对象.需要注意的是我们其中有一个步骤进行了浏览器当页的更新,因此需要对应更新driver对象,否则会出现找不到的现象.sleep的作用是为了能让页面先刷新出来.

driver.switch_to.window(driver.window_handles[-1])  # 跳转到不同页面下的新页面.
driver.find_element_by_xpath('/html/body/div[3]/div/div[1]/div[2]/div/div[1]/div[3]/ul/li[8]/a').click()
time.sleep(1)  # 延长时间确保能捕捉到.
sreach_window = driver.current_window_handle #跳转当同一页面下的新页面
driver.find_element_by_link_text("刺客信条cg").click()

然后同样的跳转到新的页面,获取到新页面下的播放资源<video>并调用执行播放的语句即可.

time.sleep(1)
driver.switch_to.window(driver.window_handles[-1])  # 跳转到搜索界面,否则会找不到.
video = WebDriverWait(driver, 30, 0.5).until(
  EC.presence_of_element_located((By.XPATH, '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[9]/video')))
#采用Web的等待机制,每隔0.5s查看一次,如果满足则执行下一步.
driver.execute_script("return arguments[0].play()", video)  # 开始播放

参考资料

selenium+python实现bilibili视频播放测试

selenium关于页面跳转

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值