关于SELENIUM自动化对IFRAME内嵌元素的处理

https://www.cnblogs.com/xiamaojjie/p/11396471.html 关于SELENIUM自动化对IFRAME内嵌元素的处理

import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome(r"C:/Python37-32/chromedriver.exe")
driver.get("https://www.etax-gd.gov.cn/xxmh/html/index_origin.html?gopage=true&m1=gzcx&m2=&fromWhere=&qxkzsx=0&tabTitle=null&cdId=dlqcd-1&gnDm=gndm-dlqcd-1")
time.sleep(1)
driver.find_element_by_partial_link_text("发票查询").click()
 
iframe = driver.find_element_by_xpath("//*[@id='ifrMain']")
# todo switch_to.frame进入到iframe里面去
driver.switch_to.frame(iframe)

driver.find_element_by_xpath('//*[@id="fpdm"]').send_keys("044001615111") 
driver.find_element_by_xpath('//*[@id="fphm"]').send_keys("36758439")
driver.find_element_by_xpath('//*[@id="nsrsbh"]').send_keys("91440705MA520MH30X")
driver.find_element_by_xpath('//*[@id="hjjexx"]').send_keys("324")
#driver.find_element_by_xpath('//*[@id="nc_1__scale_text"]/span')
time.sleep(1)
#ActionChains(driver).drag_and_drop_by_offset(driver.find_element_by_xpath('//*[@id="nc_1__scale_text"]'),xoffset=300, yoffset=0).perform()
div1=driver.find_element_by_xpath('//*[@id="nc_1__scale_text"]')
#ActionChains(driver).click_and_hold(div1)     #点击鼠标左键,按住不放
#move_by_offset(xoffset, yoffset) #鼠标移动到距离当前位置(x,y)
#release(div1)                     #在某个元素位置松开鼠标左键
ActionChains(driver).click_and_hold(div1).move_by_offset(xoffset=300, yoffset=0).release(div1).perform()

driver.find_element_by_xpath('//*[@id="spfsbh"]').send_keys("91440700792865P")
driver.find_element_by_xpath('//*[@id="spfmc"]').send_keys("有限公司营业部") 
driver.find_element_by_xpath('//*[@id="spje"]').send_keys("306.13")
driver.find_element_by_xpath('//*[@id="se"]').send_keys("18.37")
driver.find_element_by_xpath('//*[@id="kprq"]').send_keys("2020-02-12")
driver.find_element_by_xpath('//*[@id="kprq"]').click()

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


自动化某网页,这里使用的是ie浏览器,这个只需要找到跟自己安装selenium一致的 IEDriverServer.exe就行了。 ie的安全性要选择一致(要么全部启用安全,要么全部去掉启用)

"""
ie9
python3.7.2
internet 选项,进入安全标签,分别点击internet ,本地intranet,受信任的站点,受限制的站点,
四个设置,全部去掉勾选“启用保护模式”  或者全部勾选“启用保护模式”,即保持这四个设置一致,要么全部勾选,要么全部去掉勾选,就可以启动ie浏览器了
"""
import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.action_chains import ActionChains

#create capabilities
capabilities = DesiredCapabilities.INTERNETEXPLORER

#delete platform and version keys
capabilities.pop("platform", None)
capabilities.pop("version", None)

DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings'] = True

#start an instance of IE
driver = webdriver.Ie(executable_path="F:\\python_project\\webs\\IEDriverServer.exe", capabilities=capabilities)

driver.get("http://192.101.1.46:8008/")

#driver.find_element_by_xpath('//*[@id="username"]').send_keys("24037")
driver.find_element_by_xpath('//*[@id="password"]').send_keys("123321")
driver.find_element_by_xpath('//*[@id="submitBT"]').click()
time.sleep(2)

driver.switch_to.window(driver.window_handles[-1])#回首页
sreach_window3=driver.current_window_handle
iframe = driver.find_element_by_xpath("//*[@id='westIFrame']")

# todo switch_to.frame进入到iframe里面去

ActionChains(driver).click(driver.find_elements_by_xpath('//*[@name="root_menu"]')[0]).perform()#点 【客户管理】


#ActionChains(driver).click(driver.find_elements_by_xpath('//*[@name="fastQuery"]')[1]).perform()
driver.switch_to.window(driver.window_handles[-1])#回首页
iframe2 = driver.find_element_by_xpath("//*[@id='telIFrame']")
driver.switch_to.frame(iframe2)
iframe_top = driver.find_element_by_xpath("//*[@id='topFrame']")
driver.switch_to.frame(iframe_top)
driver.find_element_by_xpath("//*[@name='form_fastQuery']").get_attribute("outerHTML") #打印hml
driver.find_element_by_xpath("//input[@name='fastQuery_khzh']").send_keys("75084169100")
driver.find_element_by_xpath("//input[@class='button']").click()
driver.find_element_by_xpath("//span[@id='fast_info']").click()

driver.find_element_by_xpath("//*[@name='fastQuery_khbh']").get_attribute('value')#获取内容
driver.execute_script("window.alert('Selenium执行完毕')")
driver.execute_script("openTopView(18272923)")#获取新的客户表
driver.execute_script("do_search_khbh()") #直接执行【快速查询】按钮

下图,是打开了IE后,按F12调出来的 页面源代码图,通过右上角的 搜索,可以定位到需要的元素
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值