selenium click点击 跳转新页面转句柄

这篇具有很好参考价值的文章主要介绍了selenium click点击 跳转新页面转句柄。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.click点击

2.跳转到新页面,selenium获取内容还停留在第一页,需要转句柄

3.截图不完整-->因为 browser.switch_to.window 会缩小窗口

4.iframe在转句柄后,关闭新页面还有重新进入iframe

遇见一个a标签没有url的网站,然后用click点击进行跳转,跳转后又selenium还停留在第一个页面,查找原因后用到了转句柄,转句柄后我的内容页for循环不能用了,结果发现iframe在句柄关闭后没有重新定位,解决这个问题后发现内容页截图不完整然后发现browser.switch_to.window会改变窗口大小

import time
import uuid
from PIL import Image
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


uuid_list = []
uuid_list_ = []

def br():

    chrome_options = Options()
    chrome_options.add_argument("--headless")
    browser = webdriver.Chrome(options=chrome_options)
    with open(r'C:\Users\xxx\Desktop\stealth.min.js') as f:
        js = f.read()
    browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": js})
    browser.set_window_size(1200, 5000)
    browser.set_page_load_timeout(15)
    browser.set_script_timeout(15)
    total(browser)
    # content(browser)
    browser.quit()


def total(browser):
    browser.get(url='https://www.sprtc.com/index/yplxm.htm?activeName=wqzrxm&activeChildTab=')
    time.sleep(1)
    iframe1 = browser.find_element_by_xpath('//div[@class="center_list"]/iframe')
    browser.switch_to.frame(iframe1)
    browser.find_element_by_xpath('//*[@id="pane-wqzrxm"]/div[1]/div/label[2]/span').click()
    title_total=browser.find_elements_by_xpath('//*[@id="pane-wqzrxm"]/div[2]/div[3]/table/tbody/tr')
    link_total = browser.find_elements_by_xpath('//*[@id="pane-wqzrxm"]/div[2]/div[3]/table/tbody/tr/td[1]/div/span')
    for i in title_total:
        title_part=i.find_element_by_xpath('./td[1]/div/span').text
        time_part=i.find_element_by_xpath('./td[4]/div/span').text
        # link=i.find_element_by_xpath('./td[1]/div/span').click()
    png_list=[]
    for j in link_total:
        handle = browser.current_window_handle
        link_part=j.click()  # 切换内容页面
        time.sleep(0.5)
        all_handles = browser.window_handles
        new_handles = all_handles[1]  # 从所有句柄的集合中,获取最后那个,也就是最新的了
        browser.switch_to.window(new_handles)  # 然后当参数传递进来
        browser.set_window_size(1200, 5000)
        now_handles = browser.current_window_handle  # 查看现在的句柄

        # content_1=browser.find_element_by_xpath('//div[@class="content"]').text
        for k in range(6):
            browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")
            time.sleep(1)
        screenshot_content = browser.find_element_by_xpath('//*[@id="iframe"]')
        uid = str(uuid.uuid4())
        # uuid_list_.append(uid)
        suid = ''.join(uid.split('-'))

        browser.get_screenshot_as_file('D:\PyCharmWorkSpace\shiyan\A\%s.png' % suid)# 对浏览器截图

        left = screenshot_content.location['x']
        top = screenshot_content.location['y']
        right = screenshot_content.location['x'] + screenshot_content.size['width']
        bottom = screenshot_content.location['y'] + screenshot_content.size['height']
        img = Image.open('D:\PyCharmWorkSpace\shiyan\A\%s.png' % suid)
        img = img.crop((left, top, right, bottom))  # 对浏览器截图进行裁剪

        img.save('D:\PyCharmWorkSpace\shiyan\B\%s.png' % suid)
        # uuid_list.append(uuid_list_)
        png_list.append('D:\PyCharmWorkSpace\shiyan\B\%s.png' % suid)
        browser.close()
        browser.switch_to.window(handle)
        iframe1 = browser.find_element_by_xpath('//div[@class="center_list"]/iframe')
        browser.switch_to.frame(iframe1)

if __name__ == '__main__':
    br()

后续再优化文章来源地址https://www.toymoban.com/news/detail-548420.html

到了这里,关于selenium click点击 跳转新页面转句柄的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium 点击、输入、截图、读数、切换页(Chrome109.0.5414.75;python 3.7.9)

    selenium入门超详细教程——网页自动化操作 入门指南 | Selenium python命令行运行找不到自定义模块 excel:读取账号密码(pandas)、记录读数(openpyxl) word:操作word(pipywin32) 网页操作:seleinium 截图裁剪:PIL 窗口获取:【待完成】 windows 批处理文件bat中当前目录。 BAT脚本中

    2024年03月25日
    浏览(49)
  • Python爬虫(二十三)_selenium案例:动态模拟页面点击

    本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 分享一份Python的学习资料,但由于篇幅有限,完整文档可以扫码免费领取!!! 1)Python所有方向的学习路线(新版) 总结的Python爬虫和数据分析等各个方向应该学习的技术栈。 比如说爬虫这一块,很

    2024年02月04日
    浏览(61)
  • Python爬虫技术之Selenium自动化测试及模拟点击页面爬虫最全知识

    Selenium是一套Web网站的程序自动化操作解决方案(比如点击界面按钮,在文本框中输入文字等操作) Selenium的自动化原理如下 3.1 下载selenium库的命令 3.2 下载谷歌浏览器Chrome对应的驱动 驱动库网址:http://chromedriver.storage.googleapis.com/index.html 注意:根据自己的Chrome版本进行选择

    2024年01月16日
    浏览(75)
  • vue点击按钮实现页面跳转

    2024年02月12日
    浏览(56)
  • Unity点击按钮进行页面跳转

    省流:完整代码在底部 1、导入命名空间 2、(1)切换场景后销毁前场景 (2)切换场景后不销毁前场景 3、将脚本挂载到按钮上,添加按钮单击事件。 完整代码

    2024年02月03日
    浏览(46)
  • vue点击按钮跳转页面

    在Vue.js中,你可以使用router-link或this.$router.push()来实现点击按钮跳转页面的功能,前提是你已经配置了Vue Router。以下是两种不同的方法来实现页面跳转: 方法一:使用router-link router-link 是Vue Router提供的组件,用于创建导航链接。你可以在模板中使用它来创建按钮,实现页面

    2024年02月08日
    浏览(39)
  • Android Studio 点击按钮实现页面跳转、网页跳转

    1)页面跳转 2)网页跳转 3)完整代码 activity_main.xml: next.xml:(准备跳转到页面的布局) MainActivity.java: nextActivity.java: 4)结果呈现 Android Studio 点击按钮实现页面跳转、网页跳转就到这了,更多Android Studio相关资料(面试题)可以扫码免费领取! 需要掌握基本知识点,比如四大

    2024年04月16日
    浏览(54)
  • 【vue中点击按钮跳转页面】

    做一下笔记 1.为按钮绑定click事件 2.利用路由进行跳转 注意:需要去route下index.js文件中配置路由地址,并且跳转的路由与按钮所在的路由地址在同一级别下。若放在上一级,会出现单独的页面而不是在组件下;在下一级也就是children中会不显示  下图是将路由放在了上一级,

    2024年02月12日
    浏览(37)
  • 微信小程序—点击实现页面跳转

    1.按钮button标签通过bindtap属性绑定点击事件实现页面跳转。 2.但需注意,跳转到tabBar页面和非tabBar页面所调用的函数方法不一样。 跳转到TabBar页面需用wx.switchTab()方法 3.而 跳转到非tabBar页面用wx.navigateTo()方法

    2024年02月11日
    浏览(62)
  • 微信小程序点击跳转页面

         第一步:index.wxml 第二步:index.js 以下是点击跳转的详情页面: xiang.wxml: xiang.wxss:

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包