selenium记录Spiderbuf例题C02

server/2025/2/4 10:59:55/

防止自己遗忘,故作此为记录。

这套题牵扯到滑块。

步骤:

(1)进入例题,需要找到滑块与滑条。

需要注意的是,只能通过css选择器来筛选。

WebDriverWait(driver, 15).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, "#slider")))
slider: object = driver.find_element(By.CSS_SELECTOR, "#slider")
container: object = driver.find_element(By.CSS_SELECTOR, "#container")

 (2)之后需要动作链来操作。

但这里有个坑,就是滑过去了也不会使js刷新。

之后呢,我尝试用puautogui来拖拽,也尝试过了多重点击都没用。

最后我是连续拖了两次才解决的。

chain = ActionChains(driver, 15)
chain.drag_and_drop_by_offset(slider, container.size["width"], -container.size["height"])
chain.drag_and_drop_by_offset(slider, container.size["width"], -container.size["height"])
chain.perform()

总代码:

python"># -*- coding: utf-8 -*-
# -*- file: C02.py  -*-from selenium.webdriver import Chrome
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from time import sleeptarget_url: str = r"https://www.spiderbuf.cn/playground/c02"service: object = ChromeService(r"c02\chromedriver-win64\chromedriver.exe")
options: object = ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_argument("--disable-blink-features=AutomationControlled")driver: object = Chrome(service=service, options=options)driver.get(target_url)WebDriverWait(driver, 15).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, "#slider")))
slider: object = driver.find_element(By.CSS_SELECTOR, "#slider")
container: object = driver.find_element(By.CSS_SELECTOR, "#container")chain = ActionChains(driver, 15)
chain.drag_and_drop_by_offset(slider, container.size["width"], -container.size["height"])
chain.drag_and_drop_by_offset(slider, container.size["width"], -container.size["height"])
chain.perform()WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, r"//tbody/tr/td[3]")))
res: list = driver.find_elements(By.XPATH, "//tbody/tr/td[3]")print(sum([eval(e.text) for e in res]) / len(res))


http://www.ppmy.cn/server/164866.html

相关文章

数据库和数据表的创建、修改、与删除

1.标识符命名规则 数据库名、表名不得超过30个字符,变量名限制为29个 必须只能包含A-Z,a-z,0-9,_共63个字符 数据库名、表名、字段名等对象名中间不能包含空格 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名&#…

一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI

一、GenBI AI 代理介绍(文末提供下载) github地址:https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI,我们的使命是通过生成式商业智能 (GenBI) 使组织能够无缝访问数据&…

Unity游戏(Assault空对地打击)开发(4) 碰撞体和刚体的添加

前言 飞机和世界的大小关系不太对,我稍微缩小了一下飞机。 详细步骤 选中所有地形对象,如果没有圈起的部分,点击Add Component搜索添加。 接着选中Player对象,添加这两个组件,最好(仅对于本项目开发&#x…

2025最新版MySQL安装使用指南

2025最新版MySQL安装使用指南 The Installation and Usage Guide of the Latest Version of Oracle MySQL in 2025 By JacksonML 1. 获取MySQL 打开Chrome浏览器,访问官网链接:https://www.mysql.com/ ,随即打开MySQL官网主页面&#xff…

Qt文件操作

目录 一、文件操作相关类 1.QFile 2.QFileInfo 3.QTextStream 4.QDataStream 5.QDir 6.QFileSystemWatcher 7.QTemporaryFile 二、文件操作示例 1.文本文件操作 2.目录操作 3.二进制文件操作 一、文件操作相关类 1.QFile QFile类用于文件的创建、读写、复制、删除…

Spring Boot是什么及其优点

简介 Spring Boot是基于Spring框架开发的全新框架,其设计目的是简化Spring应用的初始化搭建和开发过程。 Spring Boot整合了许多框架和第三方库配置,几乎可以达到“开箱即用”。 优点 可快速构建独立的Spring应用。 直接嵌入Tomcat、Jetty和Underto…

Qt 5.14.2 学习记录 —— 이십일 Qt网络和音频

文章目录 1、UDP带有界面的Udp服务器(回显服务器) 2、TCP回显服务器 3、HTTP客户端4、音频 和Linux的网络一样,Qt封装了Linux的网络API,即Socket API。网络编程是在应用层写,需要传输层支持,传输层有UDP和T…

第四章:玄丹-React商品管理实战

https://ant-design.antgroup.com/components/table-cn 在这里找到我们的 Table 表格,来完成我们的商品功能实战,下面我们会学到 表格类组件的渲染表格函数组件的渲染图片上传组件弹窗组件按钮组件axios 工具的封装分页功能的实现商品管理基础表格 import React from react;…