python的selenium的用法整理

PHPer 2024-03-19 243 0 0

python的selenium的用法整理

selenium定位元素(包括父子,兄弟)及常见操作_selenium定位父元素-CSDN博客...

立即注册
更新于:2024-03-19 09:00:09
    您需要登录后才可以评论。 立即注册

    selenium3定位元素(包括父子,兄弟)及常见操作

    selenium定位元素(包括父子,兄弟)及常见操作_selenium定位父元素-CSDN博客


    文章目录

    selenium 定位元素

    • id定位:find_element_by_id()
    • name定位:find_element_by_name()
    • class定位:find_element_by_class_name()
    • link定位:find_element_by_link_text()
    • partial link定位:find_element_by_partial_link_text()
    • tag定位:find_element_by_tag_name()
    • xpath定位:find_element_by_xpath()
    • css定位:find_element_by_css_selector()
    #-----------------------------------------------------------------------
    # 通过元素id定位
    #-----------------------------------------------------------------------
    driver.find_element_by_id("userid")
    
    #-----------------------------------------------------------------------
    # 通过class_name定位
    #-----------------------------------------------------------------------
    # 通过class_name定位一个元素
    driver.find_element_by_class_name("userclass")
    
    # 通过class_name定位一批元素,返回结果为数组,下标从0开始
    driver.find_elements_by_class_name("userclass")
    driver.find_elements_by_class_name("userclass")[1].click()
    
    #-----------------------------------------------------------------------
    # 通过xpath定位元素
    #-----------------------------------------------------------------------
    # 根据元素属性和值定位
    # 定位id="userid"的元素
    driver.find_element_by_xpath("//*[@id=\"userid\"]")
    
    # 定位placeholder属性为"请输入名字"的input元素,即<input placeholder="请输入名字">
    driver.find_element_by_xpath("//input[@placeholder=\"请输入名字\"]")
    
    # 定位id="userid"元素-下层元素span-下层元素第二个input
    driver.find_element_by_xpath("//*[@id=\"userid\"]/span/input[1]")
    
    # 多条件定位
    driver.find_element_by_xpath("//input[@name=\"username\" and @value=\"lxm\"]")
    //input[@name=continue][@type=button]  # 待验证
    driver.find_element_by_id("id").find_element_by_class_name("name")  # 待验证
    
    # 根据文本定位元素
    # 定位文本为“世界真美好”的li元素
    driver.find_element_by_xpath("//li[text()=\"世界真美好\"]")
    # 定位文本为“我爱这个世界”的span元素
    driver.find_element_by_xpath("//span[text()=\"我爱这个世界\"]")
    
    # 定位文本为“世界真美好”的li元素-可传入变量
    str = "世界真美好"
    driver.find_element_by_xpath("//li[text()=\"%s\"]" % str)
    
    
    # 根据关键字
    driver.find_element_by_xpath("//a[contains(@href,\"#id1\")]")
    
    #在a标签下有个文本(text)包含(contains)网页 的元素
    driver.find_element_by_xpath("//a[contains(text(),网页)]").click()
    
    #有个叫a的标签,他有个链接href=http://www.baidu.com/ 的元素
    driver.find_element_by_xpath("//a[@href=http://www.baidu.com/]").click()
    
    
    
    #-----------------------------------------------------------------------
    # 通过tag定位元素
    #-----------------------------------------------------------------------
    # 查找input标签的元素
    driver.find_element_by_tag_name("input")
    
    

    父子、兄弟节点定位

    .表示当前节点,…表示父节点,/表示绝对路径,//表示相对路径...

    立即注册
    更新于:2024-03-19 09:24:05

    使用Selenium自动验证滑块登录

    【Python从入门到进阶】39、使用Selenium自动验证滑块登录_滑块验证-CSDN博客# _*_ coding : utf-8 _*_ # @Time : 2023-10-06 9:44 # @Author : 光仔December # @File : 豆瓣登录自动滑动验证 # @Project : Python基础 import random import re # 正则表达式匹配库 import time # 事件库,用于硬性等待 import urllib # 网络访问 import cv2 # opencv库 from selenium import webdriver # 导入selenium的webdriver模块 from selenium.webdriver.common.by import By # 引入By类选择器 from selenium.webdriver.support.wait import WebDriverWait # 等待类 from selenium.webdriver.support import expected_conditions as EC # 等待条件类 from selenium.webdriver.common.action_chains import ActionChains # 动作类 # 封装的计算图片距离的算法 def get_pos(imageSrc): # 读取图像文件并返回一个image数组表示的图像对象 image = cv2.imread(imageSrc) # GaussianBlur方法进行图像模糊化/降噪操作。 # 它基于高斯函数(也称为正态分布)创建一个卷积核(或称为滤波器),该卷积核应用于图像上的每个像素点。 blurred = cv2.GaussianBlur(image, (5, 5), 0, 0) # Canny方法进行图像边缘检测 # image: 输入的单通道灰度图像。 # threshold1: 第一个阈值,用于边缘链接。一般设置为较小的值。 # threshold2: 第二个阈值,用于边缘链接和强边缘的筛选。一般设置为较大的值 canny = cv2.Canny(blurred, 0, 100) # 轮廓 # findContours方法用于检测图像中的轮廓,并返回一个包含所有检测到轮廓的列表。 # contours(可选): 输出的轮廓列表。每个轮廓都表示为一个点集。 # hierarchy(可选): 输出的轮廓层次结构信息。它描述了轮廓之间的关系,例如父子关系等。 contours, hierarchy = cv2.findContours(canny, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 遍历检测到的所有轮廓的列表 for contour in contours: # contourArea方法用于计算轮廓的面积 area = cv2.contourArea(contour) # arcLength方法用于计算轮廓的周长或弧长 length = cv2.arcLength(contour, True) # 如果检测区域面积在5025-7225之间,周长在300-380之间,则是目标区域 if 5025 < area < 7225 and 300 < length < 380: # 计算轮廓的边界矩形,得到坐标和宽高 # x, y: 边界矩形左上角点的坐标。 # w, h: 边界矩形的宽度和高度。 x, y, w, h = cv2.boundingRect(contour) print("计算出目标区域的坐标及宽高:", x, y, w, h) # 在目标区域上画一个红框看看效果 cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.imwrite("111.jpg", image) return x return 0 # 创建Chrome WebDriver对象 driver = webdriver.Chrome() try: # 打开豆瓣登录页 driver.get("https://accounts.douban.com/passport/login") print(driver.title) # 打印
    立即注册
    更新于:2024-11-03 23:21:57
    相关内容

    python代码整理(2022年4月-2024年3月)

    Python和PHP获取百度url跳转的真实地址代码(2022年4月实测有效)

    Pip/python-如何查看已安装的包有哪些版本?如何查看某个包存在哪些版本?pip...

    用undetected_chromedriver代替selenium解决浏览器打不开网页

    sublime text下 Python 问题:TabError: inconsistent use of tabs and s...

    Python的扩展和模块安装时遇到的问题整理

    windows环境下python3安装Crypto扩展

    pip install​ 报错 ERROR: Can not execute setup.py since setuptools i...

    运行python -V 报错 -bash: python: command not found

    protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.5的解...

    python 学习中遇到的问题整理

    没有使用asynccontextmanager ,但是报cannot import name 'asynccontextman...

    python3.10.0+pyinstaller4.7打包,IndexError: tuple index out of range...

    error: Microsoft Visual C++ 14.0 or greater is required.

    安装conda搭建python环境(保姆级教程)

    学习飞浆过程中遇到“缺少paddle.fluid”

    [NLP实践01]simpletransformers安装和文本分类简单实现

    primeqa 安装requirements时报错

    sublime text下 Python 问题:TabError: inconsistent use of tabs and s...

    uiautomation报错 No module named 'comtypes.stream' Can not load UIA...

    解决无法加载UIAutomationCore.dll的报错

    汉字目标点选识别-ddddocr(返回识别的内容和位置)

    python 常用命令

    opencv报错及解决:AttributeError: module ‘cv2‘ has no attribute ‘...

    AttributeError: module 'cv2.cv2' has no attribute 'cv'

    sublime text常用快捷键及多行列模式批量操作教程

    python配置opencv环境后,读取图片,报错:can‘t open/read file: check f...

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享