首页 > 其他分享 >selenium操作网页再练手

selenium操作网页再练手

时间:2023-04-13 18:13:46浏览次数:42  
标签:练手 el 网页 selenium driver element import div wait

# coding:utf-8
from selenium.common import NoSuchElementException, TimeoutException
from selenium.webdriver.support import expected_conditions as EC
from tkinter import *
import threading
from tkinter import ttk
import pandas as pd
from selenium.webdriver.support.wait import WebDriverWait
import time
from selenium import webdriver
from selenium.webdriver.common.by import By


def _OA_selenium():
    driver = webdriver.Chrome()
    driver.get("http://192.168.1.9/")
    # 窗口最大化
    driver.maximize_window()
    # 隐式等待
    driver.implicitly_wait(30)
    # 登录
    driver.find_element(By.ID, "loginid").send_keys("123")
    driver.find_element(By.ID, "userpassword").send_keys("123")
    driver.find_element(By.ID, "submit").click()
    # 显式等待
    wait = WebDriverWait(driver, 30, 0.5)

    def run():
        # nonlocal driver
        driver.implicitly_wait(5)
        # 切换到新标签页
        driver.switch_to.window(driver.window_handles[1])
        el = wait.until(EC.presence_of_element_located(
            (By.XPATH,
             '/html/body/div[1]/div/div/div[2]/div[1]/div[2]/div[1]/div/div/div[2]/div[2]/div/div[1]/span[1]')))
        el.click()
        # 转入iframe
        fr = wait.until(EC.presence_of_element_located(
            (By.XPATH, '//*[@id="cke_1_contents"]/iframe')))
        driver.switch_to.frame(fr)  # 括号里可以是iframe标签的id或name
        el = wait.until(EC.presence_of_element_located(
            (By.XPATH, '/html/body/p')))
        el.click()
        content_body = driver.find_element(By.TAG_NAME, 'body')
        content_body.send_keys("随意")
        driver.switch_to.default_content()
        el = wait.until(EC.presence_of_element_located(
            (By.XPATH, '/html/body/div[1]/div/div/div[2]/div[1]/div[1]/div/div[3]/div/div[2]/div/span[1]/button/div')))
        el.click()
        el = wait.until(EC.presence_of_element_located(
            (By.XPATH, '/html/body/div[9]/div/div[2]/div/div[1]/div/div/div[2]/button/span')))
        el.click()
        driver.switch_to.window(driver.window_handles[0])
    flag = True
    while flag:
        driver.refresh()
        try:
            el = wait.until(EC.presence_of_element_located((By.XPATH,
                                                            '//*[@id="tabcontant_655"]/div[1]/div/div/div/div/div/div/div/div/div/div/div/span/div/table/tbody/tr/td[2]/span/a')))
        except (NoSuchElementException, TimeoutException):
            driver.quit()
            flag = False
        el.click()
        run()
    # input('t')


_OA_selenium()

  代码中循环刷新网页不太好,应该用   find_elements 取元素后循环处理。

EC.presence_of_element_located的参数注意要用()括起来

标签:练手,el,网页,selenium,driver,element,import,div,wait
From: https://www.cnblogs.com/pu369/p/17315907.html

相关文章

  • c# 对网页上的内容进行查看
    publicstringwww_revice(stringstr){  try    {     WebClientMyWebClient=newWebClient();     MyWebClient.Credentials=CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据     ......
  • 网页支持传统蒙古文排版样式HTML+CSS
    传统蒙古文排版跟大部分文字排版不一致,需要从上到下书写,然后从左到右的排版。样式文件如下:.vertical-text{-webkit-writing-mode:vertical-lr;-moz-writing-mode:vertical-lr;-o-writing-mode:vertical-lr;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;text-o......
  • 如何解决更新WordPress需要访问您网页服务器的权限
    今天更新wordpress版本时网站后台提示“要执行请求的操作,WordPress需要访问您网页服务器的权限”,更新插件也提示,更新主题也提示。后来百度查询了一下,找到了解决办法,只需要找到wp-config.php这个文件,在最后面加上如下代码就能解决问题,至于是什么原因造成的并不清楚。define(“FS_......
  • Python+selenium点击网页上指定坐标
     fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsdefclick_locxy(dr,x,y,left_click=True):'''dr:浏览器x:页面x坐标y:页面y坐标left_click:True为鼠标左键点击,否则为右键点击''&#......
  • python get请求抓取网页
    importrequestsurl='https://www.douban.com/search?'#req=requests.get(url)headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/94.0.4606.81Safari/537.36......
  • 把网页保存为可复制可编辑的PDF
    当你在网上看到了一篇文章,想永久保存下来,你会怎么办?ctrl+S保存为html或者mhtm?有时候html里有代码不让你保存、或者保存后打开内容有问题(如某csdn保存的html会跳转),有时候保存的网页html里图片不会正常显示(如wei信的公众号的文章在浏览器打开保存,并非wei信不让保存,而是它格式问题),有......
  • 用Abp实现两步验证(Two-Factor Authentication,2FA)登录(二):Vue网页端开发
    @目录发送验证码登录退出登录界面控件获取用户信息功能项目地址前端代码的框架采用vue.js+elementUI这套较为简单的方式实现,以及typescript语法更方便阅读。首先添加全局对象:loginForm:登录表单对象twoFactorData:两步验证数据,showTwoFactorSuccess:是否显示两步验证成......
  • 网页下滑超过一定高度时添加类名(以顶部导航为例)
    //html部分<headerclass="header"><divclass="containerall_top_navclearfixcontentAll"><divclass="flleft"><ahref="javascript:void(0)"><img......
  • Python爬虫之循环爬取多个网页
    之前的文中介绍了如何获取给定网址的网页信息,并解析其中的内容。本篇将更进一步,根据给定网址获取并解析给定网址及其相关联网址中的内容。要实现这些功能,我们需要解决以下问题:1、如何持续不断的获取url,并读取相关内容。2、如何判断网址是否已经读取过。文中用到的代码均已上传......
  • 网页单位为(rem)时,js控制自适应字体大小
    //js部分:屏幕大小决定根元素字体大小(functionflexible(window,document){functionresetFontSize(){constsize=(document.documentElement.clientWidth/1920)*16;//1920为设计稿宽度if(document.documentElement.clientWidth>1920){doc......