首页 > 其他分享 >selenium 小技巧集合(三)

selenium 小技巧集合(三)

时间:2023-04-06 14:48:03浏览次数:37  
标签:技巧 selenium driver element switch 切换 iframe 集合 find

iframe切换

iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示

对iframe进行操作,需要用到以下三种方法:

switch_to_iframe()                       切换到iframe上(未来会被删除,不建议使用)

switch_to.frame()                         切换到iframe上

switch_to.default_content()          切换回原主页面

 

通过如下方式进行切换操作

#定位到iframe

iframe=driver.find_element_by_id("x-URS-iframe")

#切换到iframe

driver.switch_to_frame(iframe)

 

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\\tool\selenium\chromedriver.exe")
# 隐式等待
driver.implicitly_wait(5)
driver.get("D:\\test\script\study\seleniumStu\day3\\test.html")

"""
对iframe进行操作,需要用到以下三种方法:
switch_to_iframe() 切换到iframe上
switch_to.frame() 切换到iframe上
switch_to.default_content()   切换回原主页面
"""
iframe = driver.find_element_by_id("f91fb5bc-bd95-45bf-bd77-977a2afbd25f")
driver.switch_to.frame(iframe)
driver.find_element_by_id("e4890ded-16e1-4445-bf8e-7f655793f332").send_keys("haha")

time.sleep(5)
driver.quit()

多标签页切换

在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。WebDriver提供了以下方法

current_window_handle:获得当前标签页句柄

window_handles:返回所有便签页的句柄

switch_to.window(标签页句柄):切换到对应的标签页

关闭标签页使用 close 方法

from selenium import webdriver

# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 访问网址
driver.get("http://www.baidu.com")

# 找到搜索按钮
input_element = driver.find_element_by_id("kw")
# 输入搜索内容
input_element.send_keys("松勤\n")

# 点击松勤教育官网
driver.find_element_by_css_selector("#\34 > h3 > a > em").click()

# 获得当前所有打开的窗口的句柄
all_handles = driver.window_handles

for handle in all_handles:
driver.switch_to.window(handle)
print(driver.title)

# 退出浏览器
driver.quit()

标签:技巧,selenium,driver,element,switch,切换,iframe,集合,find
From: https://www.cnblogs.com/junfanzy/p/17292706.html

相关文章

  • selenium 小技巧集合(四)
    警告框处理在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用switch_to.alert方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作text:返回alert/confirm/prompt中的文字信息accept():接受现有警......
  • selenium 小技巧集合(一)
    键盘事件Keys()类提供了键盘上几乎所有按键的方法。前面了解到,send_keys()方法可以用来模拟键盘输入,除此之外,我们还可以用它来输入键盘上的按键,甚至是组合键,如Ctrl+A、Ctrl+C等fromseleniumimportwebdriver#引入Keys模块fromselenium.webdriver.common.keysimp......
  • Map自定义key,然后把value的集合List进行指定字段排序
    packagecom.zdft.purchase;importcom.google.common.collect.Lists;importjava.util.*;importjava.util.stream.Collectors;publicclassStudentMethod{//需求:Map自定义key,然后把value的集合List进行指定字段排序;例如:多次考试,取最高分的集合展示publics......
  • 自动化测试当中的三大设计技巧:PO设计思想,数据驱动及关键字驱动
    大家好,我是洋子。当我们以离线脚本的形式编写了大量的自动化测试代码后,很容易发现以下常见问题:(1)对于UI自动化,当UI层的元素发生改变,需要修改所有相关的case,工作量巨大(2)代码难以扩展,每次想新增一个自动化case就要写新的逻辑,补充新的代码(3)代码可读性差,代码冗余,存在大量重复代码或者......
  • 集合深拷贝
    packagea.b.utils;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.io.IOUtils;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.util.Co......
  • Day 22 22.1 Web自动化之selenium&pyppeteer
    web自动化随着互联网的发展,前端技术也在不断变化,数据的加载方式也不再是单纯的服务端渲染了。现在你可以看到很多网站的数据可能都是通过接口的形式传输的,或者即使不是接口那也是一些JSON的数据,然后经过JavaScript渲染得出来的。这时,如果你还用requests来爬取内容,那......
  • 活字格性能优化技巧(1)——如何利用数据库主键提升访问性能
    本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。大家都知道,活字格作为企业级低代码开发平台,拥有6大引擎,3大能力,能够高效落地企业级应用。在每年的应用大赛中也能看到很多格友利用活字格做了很多......
  • Selenium-处理弹窗弹出新页面的切换问题
    WebDriverWaitwait=newWebDriverWait(driver,TimeSpan.FromSeconds(60));wait.Until(driver=>{returndriver.WindowHandles.Count==waitforHandlesCount;});stringcurrent_handler=driver.Curren......
  • 第二十二篇 高级技巧
    bycaixin深圳高级技巧-高级函数在JavaScript里面,函数拥有非常高的特权,甚至是一等公民,因此也跟Kotlin一样支持多种编程范式一些写函数时的高级技巧纯函数高阶函数函数缓存懒函数柯里化函数组合纯函数纯函数要满足两个条件:1、给相同的参数返回相同的结果2、......
  • 面试题大集合
    目录第一章Python基础第二章函数第三章模块第四章面向对象第五章网络和并发编程第六章数据库和缓存第七章前端第八章django第九章Flask第十章tornado第十一章api第十二章git第十三章爬虫第十四章算法和数据结构第十五章Linux第十六章设计题第十七章客观题第十八......