js点击切换div盒子_ifram的切换

1d7c3ced56d390d0f68ac9f42c72356c.png

链接:https://pan.baidu.com/s/1XouKF1xfsGqTc2oDzQbYqQ

提取码:t4ac

复制这段内容后打开百度网盘手机App,操作更方便哦

首先我们弄懂什么是iframe

百度百科的回答是:

IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)

我把它简单理解为html内嵌的一个大型页面。怎么知道他是iframe还是弹框呢。我们可以在elements的html查看iframe的标签。

6d9dedaeb3ccbf7a6cefe1a76d052ea9.png

我们找到标签后如何定位找到iframe呢

我们有以下三种方式:

1)通过下标,是第五个,根据索引是索引4,索引从0开始

607e4aa5999b7dcc6ee85133d69cd30c.png

frame(4)

2)通过name

69c698bd3a7c09cc29dceef0897216a1.png

driver.switch_to.frame("login_frame_qq")

3)xpath查找

57d518b589e0acf132db215cd4a482a4.png

driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@name="login_frame_qq"]'))

b8fcbf4f9bb4b019c12b04693f4d448a.png

driver.switch_to.frame(driver.find_element_by_xpath(//*[@id="qr_area"]/span[1]))

思路

1)引入包

import time

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

进入浏览器

# 先引入包

from selenium import webdriver

#开启会话

driver = webdriver.Chrome()

2)打开腾讯课堂,定位登录元素://*[@id="js_login"],并点击登录

driver.get('腾讯课堂_专业的在线教育平台(ke.qq.com)')

我们需要打开网站腾讯课堂,定位登录并点击登录,定位元素://*[@id="js_login

WebDriverWait(driver,20,1).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="js_login"]')))

driver.find_element_by_xpath('//*[@id="js_login"]').click()

b2788cb55182debe2e6386fc9849fa0e.png

登陆之后选择qq登录,定位qq登录并点击

点击qq登录,定位元素xpath :/html/body/div[3]/div/div[2]/div[2]/a[1]

WebDriverWait(driver,20,1).until(EC.visibility_of_element_located((By.XPATH,'/html/body/div[3]/div/div[2]/div[2]/a[1]')))

driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/a[1]').click()

61d88c3030512e6021b4e081b7f8878d.png

3)点击登录我们需要定位到iframe进行切换,以下三种任选其一

# driver.switch_to.frame(4)

# driver.switch_to.frame("login_frame_qq")

driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@name="login_frame_qq"]'))

4)退出iframe,回到默认的html页面

driver.switch_to.default_content()

#关闭浏览器

time.sleep(10)

driver.quit()

第二种切换方式利用ec模块的数据,这种更稳定

# 方法二

WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值