当前位置: 首页 > news >正文

公司网站备案号上海网站营销seo方案

公司网站备案号,上海网站营销seo方案,芜湖移动网站建设,banwagon wordpress【自动化】Python SeleniumUtil 工具 【Python】使用Selenium 操作浏览器 自动化测试 记录-CSDN博客文章浏览阅读58次。文章浏览阅读42次。【附件】Selenium chromedriver 驱动及浏览器下载。【附件】Selenium chromedriver 驱动及浏览器下载-CSDN博客。3.安装Chrome浏览器驱动…

【自动化】Python SeleniumUtil 工具

【Python】使用Selenium 操作浏览器 自动化测试 记录-CSDN博客文章浏览阅读58次。文章浏览阅读42次。【附件】Selenium chromedriver 驱动及浏览器下载。【附件】Selenium chromedriver 驱动及浏览器下载-CSDN博客。3.安装Chrome浏览器驱动。2.安装 selenium。1.安装python。https://blog.csdn.net/G971005287W/article/details/144557463

【学习记录】浏览器指纹相关学习记录(指纹介绍、获取指纹、修改指纹、随机指纹保护隐私等)-CSDN博客文章浏览阅读762次,点赞18次,收藏7次。可以识别是同一个用户。https://blog.csdn.net/G971005287W/article/details/144528762

【自动化】Python SeleniumUtil 油猴 工具 自动安装用户脚本-CSDN博客文章浏览阅读2次。【自动化】Python SeleniumUtil 工具-CSDN博客。【自动化】Python SeleniumUtil 油猴 工具。【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565736

Python SeleniumUtil

import timefrom selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ECclass SeleniumUtil:class 标签页:@staticmethoddef 切换到新窗口句柄(driver, before_handles, after_handles):# 检查是否有新的窗口句柄出现new_handles = after_handles - before_handlesif new_handles:# 切换到新打开的标签页new_window = new_handles.pop()driver.switch_to.window(new_window)return Trueelse:return False@staticmethoddef 获取所有已知窗口句柄(driver):return set(driver.window_handles)@staticmethoddef 切换到第一个窗口(driver):# 切换到第一个窗口driver.switch_to.window(driver.window_handles[0])@staticmethoddef 切换到当前窗口(driver):# 存储窗口的 IDoriginal_window = driver.current_window_handleprint(original_window)# 检查没有打开其他的窗口assert len(driver.window_handles) == 1class Driver:#初始化浏览器@staticmethoddef 初始化驱动通过Debug模式(驱动路径, debuggerAddress):# 设置Edge选项options = webdriver.ChromeOptions()# options.add_experimental_option('prefs',{"extensions.ui.developer_mode": True,})options.add_experimental_option("debuggerAddress", debuggerAddress)# C:\\chromedriver\\129.0.6656.0\\chromedriver.exeservice = ChromeService(executable_path = 驱动路径)# 创建一个新的Edge浏览器实例,并启用无痕模式driver = webdriver.Chrome(service = service, options = options)return driver# 如果你只需要确认元素存在,但不立即与其交互,那么可以使用 presence_of_element_located。# 如果你需要确保元素不仅存在而且可以安全地被用户交互(如点击),则应使用 element_to_be_clickableclass 页面元素:@staticmethoddef 判断元素是否存在(driver, 标签, 内容, 超时时间):element = SeleniumUtil.页面元素.获取元素(driver, 标签, 内容, 超时时间)if element is not None:return Trueelse:return False@staticmethoddef 点击元素(元素):if 元素 is not None:元素.click()return Trueelse:return False@staticmethoddef get元素(driver, 需要交互, 类型, 值, 超时时间):if 超时时间 is None:超时时间 = 7if 需要交互 is None:需要交互 = Truetry:wait = WebDriverWait(driver, 超时时间)if 需要交互:元素 = wait.until(EC.element_to_be_clickable((类型, 值)))if 元素 is not None:return 元素else:return driver.find_element(类型, 值)else:元素 = wait.until(EC.presence_of_element_located((类型, 值)))if 元素 is not None:return 元素else:return driver.find_element(类型, 值)except Exception as e:try:return driver.find_element(类型, 值)except Exception as e2:time.sleep(0)return None@staticmethoddef get元素ById(driver, id, 需要交互, 超时时间):return SeleniumUtil.页面元素.get元素(driver, 需要交互, By.ID, id, 超时时间)@staticmethoddef get元素By标签及内容(driver, 标签, 内容, 需要交互, 超时时间):return SeleniumUtil.页面元素.get元素(driver, 需要交互, By.XPATH, f"//{标签}[text()='{内容}']", 超时时间)@staticmethoddef get元素ByName属性(driver, name, 需要交互, 超时时间):return SeleniumUtil.页面元素.get元素(driver, 需要交互, By.NAME, name, 超时时间)@staticmethoddef get元素By标签及属性(driver, 标签, 属性, 属性值, 需要交互, 超时时间):return SeleniumUtil.页面元素.get元素(driver, 需要交互, By.CSS_SELECTOR, f'{标签}[{属性}="{属性值}"]', 超时时间)@staticmethoddef get元素By标签及属性立即(driver, 标签, 属性, 属性值, 需要交互, 超时时间):值 = f'{标签}[{属性}="{属性值}"]'print(值)return driver.find_element(By.CSS_SELECTOR, 值)## @staticmethod# def 获取元素通过标签及属性(driver, 标签, 属性, 属性值):#     try:#         element = driver.find_element(By.CSS_SELECTOR, f'{标签}[{属性}="{属性值}"]')#         return element#     except Exception as e:#         time.sleep(0)#         return Noneclass 扩展程序:@staticmethoddef 打开扩展程序页(driver):driver.get('chrome://extensions')@staticmethoddef 查询开发者模式状态(driver):# 打开目标网页SeleniumUtil.扩展程序.打开扩展程序页(driver)# 使用WebDriverWait等待页面加载完成,代替固定等待时间# time.sleep(5)try:wait = WebDriverWait(driver, 5)time.sleep(1)js = """// window.location.href = 'chrome://extensions'//获取开发者模式状态let flag = document.querySelector("body > extensions-manager").shadowRoot.querySelector("#toolbar").shadowRoot.querySelector("#devMode").getAttribute("aria-pressed");if(flag === 'true'){return true;}else{return false;}"""status = driver.execute_script(js)print(f"当前开发者模式状态-{status}")return statusexcept Exception as e:time.sleep(0)@staticmethoddef 切换开发者模式状态(driver):try:wait = WebDriverWait(driver, 7)time.sleep(1)js = """document.querySelector("body > extensions-manager").shadowRoot.querySelector("#toolbar").shadowRoot.querySelector("#devMode").click();return true;"""driver.execute_script(js)except Exception as e:time.sleep(0)@staticmethoddef 打开开发者模式(driver):SeleniumUtil.扩展程序.修改开发者模式状态(driver, True)@staticmethoddef 修改开发者模式状态(driver, flag):# 打开目标网页SeleniumUtil.扩展程序.打开扩展程序页(driver)# 使用WebDriverWait等待页面加载完成,代替固定等待时间from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC开发者模式状态 = SeleniumUtil.扩展程序.查询开发者模式状态(driver)if 开发者模式状态 == flag:time.sleep(0)else:SeleniumUtil.扩展程序.切换开发者模式状态(driver)print(f"修改开发者模式状态-{flag}")

http://www.hrbkazy.com/news/1182.html

相关文章:

  • wordpress可以做网站吗网站首页推广
  • 公司给了个邮箱地址怎么登录优化方法
  • 网站建设实战李静百度小程序排名优化
  • 厨房装修效果图seo积分系统
  • 建设免费网站模板网站友情链接怎么弄
  • 日日干天天做网站吴中seo页面优化推广
  • 上海网站建设公司网经典软文案例200字
  • 北京网站建设 专业10年网页设计模板网站免费
  • 淘宝网站都是怎么做的市场推广外包团队
  • wd wordpress优化营商环境的金句
  • 姑苏区做网站百度云网盘官网
  • 网站后续建设网络营销推广方法
  • 建设银行咸阳交费网站张北网站seo
  • 闵行网站开发品牌运营具体做什么
  • 环保h5微网站文军seo
  • 网易那个网站可以做字幕在线友情链接
  • 微信官方网站怎么进入西地那非片
  • 网站服务器可以做家用电脑服务营销案例
  • 投资域名后悔死了效果好的关键词如何优化
  • 怎样运营推广网站武汉整站seo数据上云
  • 徐州做网站企业最近新闻报道
  • 网站留言板带后台模板网站优化是做什么的
  • 莆田网站建设方案报价百度浏览器官方下载
  • 一个网站上线的时间免费的网站平台
  • 查网站 备案信息谷歌外贸
  • 正定县住房和城乡建设局网站百度热门
  • 网林时代网站建设汽车品牌推广策划方案
  • 百度网盘怎么找资源百度推广优化是什么?
  • 网站做付费推广都需要问什么天津网站建设优化
  • 怎么做网站给国外看见搜狐财经峰会直播