selenium多框架间切换及操作js滚动条实例

来源:互联网 发布:新网域名需要备案吗 编辑:程序博客网 时间:2024/06/09 14:49

原地址可能打不开,项目问题,登录的账号密码已删除


# coding:utf-8__author__ = 'binsen'import time,osfrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChainsdriver = webdriver.Chrome()driver.get('http://182.151.199.4:8300/cq1/login.jsp')driver.implicitly_wait(10)driver.maximize_window()driver.find_element_by_id('j_username').send_keys('xxx')driver.find_element_by_id('j_password').send_keys('xxx')driver.find_element_by_xpath("//div[@class='login_btn']/img").click()time.sleep(3)a = driver.find_element_by_id('portalmain')driver.switch_to.frame(a)b = driver.find_element_by_id('f_home')driver.switch_to.frame(b) # 元素在框架里面,先切进框架# js = 'window.scrollTo(0,450)'# driver.execute_script(js)target = driver.find_element_by_xpath('//*[@id="menus"]/a[15]/li/div[2]') # 定位想要移动滚动条到的元素的位置driver.execute_script("arguments[0].scrollIntoView();", target)time.sleep(2)driver.find_element_by_xpath('//*[@id="menus"]/a[15]/li/div[1]/img').click() # 点击"集团投资项目管理"按钮time.sleep(2)# print driver.current_window_handleprint driver.current_urla_handles = driver.window_handlesprint a_handlesdriver.switch_to.default_content() # 跳到主页面b_handles = driver.window_handles # 到主页面后比对窗口,框架里打开的经过验证,是一个窗口中的print b_handlesc = driver.find_element_by_id('portalmain') # 重新切入driver.switch_to.frame(c)d = driver.find_element_by_id('f_ProjGroup')driver.switch_to.frame(d) # 元素在框架里面,先切进框架driver.find_element_by_id('year1').click()driver.find_element_by_xpath("//*[@id='ext-gen3']/div[2]/div/table/tbody/tr[18]/td").click() # 选择2018年time.sleep(2)driver.find_element_by_xpath("//*[@id='tabList']/input[2]").click() # 点击新增按钮time.sleep(2)driver.find_element_by_xpath("//*[@id='projectDiv']/table/tbody/tr[1]/td[2]/div/div/div[3]/div").click() # 点击投资主体aa = driver.find_element_by_xpath("//td[@text='铁通公司']")ActionChains(driver).move_to_element(aa).click().perform()

多框架切换:driver.switch_to_frame(),切换到主文档:driver.switch_to.default_content(),括号里可以直接用id、name和索引定位driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))用xpath定位多层框架切换需一层层切换,返回上一层框架:driver.switch_to.parent_frame(),如果当前已是主文档,则无效果有多个框架套接时,鼠标放上去看起来可能一样,其实不一样,需仔细分析

js控制滚动条:js = "var q=document.documentElement.scrollTop=200"   driver.execute_script(js)js = 'window.scrollTo(100,450)'   driver.execute_script(js),100450分别为下滚动条和右滚动条target = driver.find_element_by_id("id_keypair")driver.execute_script("arguments[0].scrollIntoView();", target) # 拖动到可见的元素的地方去

原创粉丝点击