python selenium启动常用

2023-11-01

加载超时设置
browser.set_page_load_timeout(5)


# 二进制转16进制
a ='00000000'
hex(int(a, 2))


from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
import re
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup as bs
import pickle

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["enable-logging"])
browser = webdriver.Chrome(options=options)
#browser = webdriver.Chrome()
#Chrome浏览器驱动
js='window.open("https://www.baidu.com");'
browser.execute_script(js)
browser.get('https://www.taobao.com/')
#打开网页
def dian(s,w):
    xx = browser.find_elements_by_css_selector(s)
    for i in xx:
        if w == i.text:
            print(i.text)
            i.click()
            time.sleep(1)
            break
        else:
            pass
handles = browser.window_handles
browser.switch_to.window(handles[0])

js="var q=document.getElementById('id').scrollTop=10000"
browser.execute_script(js)
js="var q=document.documentElement.scrollTop=100"
browser.execute_script(js)

js ='myVid=document.querySelector("video");alert(myVid.duration);'# 这里是获取第一个video标签
browser.execute_script(js)
#取得一个视频长度
js ='myVid=document.getElementById("videoSource");alert(myVid.duration);'
browser.execute_script(js)
try:
    alert = browser.switch_to.alert
    con = alert.text
    print(con)
    t = int(float(con)/60)+1
    print(t)
    alert.accept()
except:
    t =30

js = "var q=document.getElementsByClassName('content')[0].scrollTop = 10000"
#可指定元素滑动
def c():
    bo = browser.find_element_by_xpath('//*[@id="task-content-iframe"]')
    browser.switch_to.frame(bo)
    browser.switch_to.default_content()
    html = bo.get_attribute('innerHTML')
    js ='videoList(10108325)'
    browser.execute_script(ji)
    try:
        alert = browser.switch_to.alert
        con = alert.text
        print(con)
        alert.accept()
    except:
        pass

#元素截图
s = browser.find_element_by_id('safecode')
 s.screenshot('1.png')
#。。。。。。。。。。。。。。。。。。。。。。。。。。。

def c():
    #滑动元素
    for i in range(1):
        
        browser.switch_to.default_content()
        bo = browser.find_element_by_id('baxia-dialog-content')
        browser.switch_to.frame(bo)
        d = browser.find_element_by_id('nc_1_n1z')
        ActionChains(browser).click_and_hold(d).perform()
        
        xx= 300
        while xx>0:
            x = random.randint(50,80)
            xx =xx-x
            print(x)
            ActionChains(browser).move_by_offset(xoffset=x, yoffset=0).perform()

        ActionChains(browser).release(d).perform()

# selenium 4.0 
#id
x = browser.find_element(By.ID, 'kw') #id

#name
x = browser.find_element(By.NAME, 'wd') #id

#class
x = browser.find_element(By.CLASS_NAME, 'cos-pc') #id

#TAG p div span ul li
x = browser.find_element(By.TAG_NAME, 'body') #id

#By.LINK_TEXT表示全部匹配linktext定位找到元素
x = browser.find_element(By.LINK_TEXT, '百度首页') #id

#By.PARTIAL_LINK_TEXT表示模糊匹配linktext定位找到元素 
x = browser.find_element(By.PARTIAL_LINK_TEXT, '百度首页')

x = browser.execute_script(js)

def ma():

    def sss():
        import ddddocr
        ocr = ddddocr.DdddOcr()
        with open('1.png', 'rb') as f:
            img_bytes = f.read()
        res = ocr.classification(img_bytes)
        #print(res)
        return res

    for i in range(10):
        u = browser.find_element_by_id('checkcode')#验证码
        u.screenshot('1.png')
        m = sss()
        print(m)

        if len(m)==4:
            return m
        else:
            u.click()
            time.sleep(1)
            

def deng():

    for i in range(1):
        n = ''
        m =''

        browser.get('http://lzjtu.lllnet.cn/')
        time.sleep(5)
        nn =browser.find_element_by_id('loginName')
        mm = browser.find_element_by_id('password')
        num = browser.find_element_by_id('randNum')

        nn.clear()
        mm.clear()
        num.clear()

        a = ma()
        
        nn.send_keys(n)
        mm.send_keys(m)
        num.send_keys(a)

        time.sleep(1)
        browser.find_element_by_class_name('l_btn1').click()
        time.sleep(5)

chromedriver驱动下载地址:
最新下载链接:https://googlechromelabs.github.io/chrome-for-testing/

http://chromedriver.storage.googleapis.com/index.html

国内镜像:https://registry.npmmirror.com/binary.html?path=chromedriver/

同时提供geckodriver和iedriverserver的下载地址:

geckodriver:

https://github.com/mozilla/geckodriver/releases

iedriverserver:

http://selenium-release.storage.googleapis.com/index.html
————————————————

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python selenium启动常用 的相关文章

随机推荐

  • GlidedShy 第一题 实现自动登录和数据爬取

    python 自动登录 控制以及接管浏览器 爬取信息练习 GlidedShy官网 爬虫练习网站 代码仅供学习参考 功能实现步骤 自动登录 输入账号密码 选择题目 爬取数据 自动提交后返回 验证邮箱 注册时已人工验证 框架 Seleium控制
  • spdlog和fork冲突问题

    遇到个问题 使用spdlog的async logger打印日志 一直都是正常的 但是调用了fork之后就不打印了 先使用打印TODO大法 使用的spdlog的default logger打印 走的console打印 结果发现console打
  • win10 WSL2 Docker 与 Linux Docker

    项目场景 项目场景 用win10 wsl2 docker开发使用GPU tensorflow onnx TensorRT 的镜像 然后部署到Linux生产环境进行使用 发现不识别cuda驱动 问题描述 在Linux上运行wsl2 save
  • 优化算法基本原理

    优化算法基本原理 机器学习就两个问题 一个是model的定义 一个就是如何优化 model是战略 优化则是执行 在Caffe现在的版本中 主要使用了三种优化算法SGD AdaGrad 以及NAG 这三种算法快速 高效 缺点就是极容易收敛到局
  • iOS架构-组件化(项目实战-项目首页架构)

    UI架构设计 设计模式 外观模式 代理模式 适配器模式 adapter 注意 一版本只是搭建结构 一 1 0 Tab搭建 二 1 1 新增UICollectionView 主页 gt 整体设计基于 gt UICollectionView 滑
  • protobuf介绍和语法

    目录 前言 语法 标识符 字段 字段类型 proto2和proto3区别 前言 Protobuf即Protocol Buffers 是Google公司开发的一种跨语言和平台的序列化数据结构的方式 是一个灵活的 高效的用于序列化数据的协议 与
  • 用CSS实现宽度自适应100%,宽高比例为16: 9的矩形

    宽度自适应100 宽高比为16 9 即100 h 16 9 计算出来矩形高度 h 56 25 父元素设置height 0 padding bottom 56 25 是为了让子元素适应父元素的高度 子元素高度 父元素的 padding bot
  • python 崇天_python 从入门到放弃-----认识python的过程

    因为初来匝道 这样子写不知道会不会有问题 这里我先写下来 后期如果有问题 再修改 这里只记录一个小渣渣的学习过程和总结 中途学习爬虫也断断续续 还在继续努力中 但也总结自己的一些个人经验 1 零基础学习爬虫 还是要学python和HTML的
  • 2023年第二届服务机器人国际会议(ICoSR 2023)

    会议简介 Brief Introduction 2023年第二届服务机器人国际会议 ICoSR 2023 会议时间 2023年7月21日 23日 召开地点 中国 上海 大会官网 www iwosr org ICoSR 2023将围绕 服务机
  • Clang 新手教程来啦!

    长话短说 这篇新手教程会让你弄清楚什么是clang clang AST clang plugins 和clang tools 等等 让你大概知道clang 可以解决什么问题 而且小白也是可以用clang libraries 来开发工具的 0
  • 微信小程序前端引入weui组件库

    正在开发的微信小程序 想使用weui组件库 步骤如下 基础 1 小程序开发工具 1 06 22 1 初始化 以管理员身份运行命令行窗口 cmd 或使用VSCode进入终端 在cmd中进入项目的根目录 然后输入以下命令 npm init 后面
  • 2020新版去水印小程序搭建详细教程

    可以设置小程序跳转 引流也不错 支持小程序后台流量主激励视频广告 用户下载一次观看一次视频广告 收入非常可观 支持小程序后台流量主banner广告 支持全网短视频解析 苹果安卓通用 支持后台无限生成卡密 支持自定义文字广告 支持图片广告 支
  • amazon-kinesis-video-streams-webrtc-sdk-c 移植到linux开发板

    大部分参考这位大神的资料 分析依赖关系 通过分析Cmakelist txt得出了一些依赖关系 libkvsWebrtcClient so 依赖项如下 libkvspicUtils a libkvspicState a libssl so l
  • 如何写好一份PPT

    写工作汇报PPT 核心是 要让领导一眼看懂你做的汇报 PPT 本着这个原则 这里老秦提供4种解决方案 PowerPoint的核心作用是什么 Power your Point PPT 的第一目的是沟通和传达 它是架在讲者和听者之间的桥梁 辅助
  • 数字IC-序列检测-fsm

    序列检测简介及代码实现 序列检测器包含两种 一种是移位寄存器 另一种时状态机 还有重复序列和不重复序列检测 重点关注和了解如何用状态机去实现 序列检测器就是将指定的序列从数字码流 中检测出来 收到输出1 否则输出0 移位寄存器解法 重复序列
  • 教你如何安装SCSI硬盘 安装、启动、设置篇

    SCSI硬盘一向认为是昂贵且高不可攀的存储设备 不仅本身价位高于IDE硬盘很多 而且必须另外选择SCSI接口卡 因此在这样的条件下 一般计算机用户便倾向于使用IDE接口的硬盘 IDE硬盘虽然具有低价的优势 但始终敌不过SCSI硬盘的强悍速度
  • python算法中的深度学习算法之强化学习(详解)

    目录 学习目标 学习内容 强化学习 环境建模 Markov决策过程
  • C++11 -- 入门基础知识

    文章目录 C 11简介 列表初始化 std initializer list 变量类型推导 nullptr 范围for循环 STL中的一些变化 C 11简介 在2003年C 标准委员会曾经提交了一份技术勘误表 简称TC1 使得C 03这个名
  • uniapp+vue3+vite+ts+uviewPlus搭建项目

    创建项目架构 首先使用官方提供的脚手架创建一个项目 这里我创建的 vue3 vite ts 的项目 npx degit dcloudio uni preset vue vite ts project name 如命令行创建失败 请直接访问
  • python selenium启动常用

    加载超时设置 browser set page load timeout 5 二进制转16进制 a 00000000 hex int a 2 from selenium import webdriver import time from s