嵌套在iframe的元素如何定位


1、本次脚本编写的目的:新建一个实验记录的步骤、步骤内容并提交

 

2.步骤标题的定位方法照旧:

#步骤标题---目的1的代码
bzbt = self.browser.find_element_by_xpath('//*[@id="pane-step"]/div/section/div[1]/div/div[2]/form/div[1]/div/div/input')
bzbt.click()
time.sleep(2)
bzbt.send_keys('lwy的自动化实验步骤标题:20200902')
time.sleep(3)

3、步骤内容的源代码如下,可以看到元素是嵌套在iframe中的,且iframe的id是动态的。

 

 

百度最有价值的参考链接:https://www.jianshu.com/p/5af3974c40c7

根据部分元素属性定位

xpath中提供了三个非常好的方法来为我们定位部分属性值:

  1. driver.find_element_by_xpath ("//div[contains(@id, ‘btn-attention’)]")  ------contains(a, b) 如果a中含有字符串b,则返回true,否则返回false
  2. driver.find_element_by_xpath ("//div[starts-with(@id, ‘btn-attention’)]") -----starts-with(a, b) 如果a是以字符串b开头,返回true,否则返回false
  3. driver.find_element_by_xpath ("//div[ends-with(@id, ‘btn-attention’)]") ----- ends-with(a, b) 如果a是以字符串b结尾,返回true,否则返回false

#这个需要结尾是‘btn-attention’

参考上面的经验,总结出目的2的代码如下:

    #定位步骤内容的iframe的框架中的元素(先定位到框架)

    #iframe的xpath为//*[@id="vue-tinymce-159909748361216_ifr"]

首先需要定位到 iframe 元素,当iframe 的 id是动态时,用(starts-with(a, b) 如果a是以字符串b开头,返回true,否则返回false)
iframe = self.browser.switch_to.frame(self.browser.find_element_by_xpath("//iframe[starts-with(@id,'vue-tinymce')]"))----我的代码,通过打印消息发现定位是成功的
#driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))---参考别人的代码
#定位步骤内容的输入框(再定位到元素)

 

 
  

 

bznr = self.browser.find_element_by_xpath('//*[@id="tinymce"]/p') 
time.sleep(3)
bznr.click()
print('lwy1111111111')
time.sleep(2)
#bznr.send_keys('lwy的自动化测试步骤内容是:lwy你真棒')---这一步这样写不知道为什么不行,没找到原因,也不深究了
self.browser.find_element_by_id('tinymce').send_keys('lwy的自动化测试步骤内容是:lwy你真棒')
4、目的3--提交

 

 
  

 所以,需要先退出irfame

#退出iframe(因为提交这个按钮的元素已经不在iframe框架中)
exitframe = self.browser.switch_to.default_content()
time.sleep(1)
 
  
#提交--目的3完成
submitt1 = self.browser.find_element_by_xpath('//*[@id="pane-step"]/div/section/div[1]/div/div[3]/div/button[2]/span').click()

最终的效果是

 

 
  

 真棒,简直是完美!!哈哈 

 
 

 

 



 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 Selenium定位多个iframe嵌套中的元素 定位元素遇到的各种坑----页面嵌套了iframe selenium定位多个嵌套iframe 页面跳转如何进入一个嵌套在Iframe中的页面中 iframe框中元素定位 selenium 中在 iframe 内的元素定位 Jquery如何获得