Selenium之webdriverAPI

Posted 测试的自我放逐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium之webdriverAPI相关的知识,希望对你有一定的参考价值。

Selenium之webdriverAPI

 1.py文件webdriverAPI

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains   ##鼠标操作

from selenium.webdriver.support.select import Select  ####Select模块

driver = webdriver.Chrome()

driver.get(‘http://ui.imdsx.cn/uitester/‘)  ###

 

import time

time.sleep(1)

driver.execute_script(‘window.scrollTo(0,0);‘)

time.sleep(1)

# print(driver.window_handles)

 

# el = driver.find_element_by_css_selector(‘[href="/new-index/"]‘)

# el.click()

 

# print(driver.window_handles)

# 获取全部tag的标签名

# handles = driver.window_handles

# driver.switch_to_window(handles[1])

 

# driver.switch_to.window(handles[1])

#

# driver.find_element_by_css_selector(‘#newtag‘).send_keys(‘xxxx‘)

 

# 退出驱动

# driver.quit()

# # 关闭页面 关闭时如果指针切换了 必须手动切回来 不会默认切回来

# driver.close()

# driver.switch_to.window(handles[0])

# driver.find_element_by_css_selector(‘#i1‘).send_keys(‘xxxx‘)

 

多层html

# name = top-frame

# 如果iframe有name属性 或 id属性则  可以直接在frame种填写

Iframe中通过src可以嵌套html

# driver.switch_to.frame(eleObj)  # top-frame

# # driver.switch_to.frame(‘top-frame‘)

# import time

# time.sleep(2)

 

# 如果没有name和id属性 frame() 可以接受elementOBj

# eleObj = driver.find_element_by_css_selector(‘[src="/new-index/"]‘)

# # 切换到 top-frame

# # 输入newtag文案

# driver.find_element_by_css_selector(‘#newtag‘).send_keys(‘xxxx‘)

# # 切换到百度frame

# driver.switch_to.frame(‘baidu-frame‘)

# time.sleep(2)

# # 输入文案

# driver.find_element_by_css_selector(‘#kw‘).send_keys(‘xxxx‘)

# # 返回到你的上一层

# driver.switch_to.parent_frame()

# # 清空input的数据

# driver.find_element_by_css_selector(‘#newtag‘).clear()

# # 在进入百度的frame

# driver.switch_to.frame(‘baidu-frame‘)

# # 在清除百度的输入

# driver.find_element_by_css_selector(‘#kw‘).clear()

# # 返回到最外层

# driver.switch_to.default_content()

# driver.find_element_by_css_selector(‘#i1‘).send_keys(‘xxxxxx‘)

 

 

 

# 最大化浏览器

# driver.maximize_window()

# driver.find_element_by_link_text(‘跳转大师兄博客地址‘).click()

# #浏览器的后退键

# driver.back()

# # 浏览器的前进按钮

# driver.forward()

# # 浏览器的刷新按钮

# driver.refresh()

# 获取当前浏览器的大小

# print(driver.get_window_size())

# # 设置浏览器的大小

# driver.set_window_size(100,100)

 

# 截图

# driver.get_screenshot_as_file(‘pngdemo.png‘)

 

 系统级别的弹出框

# driver.find_element_by_css_selector(‘#alert‘).click()

# # alert处理

# print(driver.switch_to.alert.text) ##弹框文本 

# driver.switch_to.alert.accept() #确认

# driver.switch_to.alert.dismiss() # 取消

 

悬浮显示

# el = driver.find_element_by_css_selector(‘#dis1‘)

# # 判断元素是否在页面上展示

# print(el.is_displayed())

# # 暂时让按钮显示出来

# driver.execute_script("document.getElementById(‘dis1‘).style.display=‘‘;")

# print(el.is_displayed())

# driver.find_element_by_css_selector(‘#dis1‘).click()

 

# 鼠标操作

# 获取要悬浮的元素

# el = driver.find_element_by_css_selector(‘#a‘)

# dis1 = driver.find_element_by_css_selector(‘#dis1‘)

# # 鼠标操作 链式变成

# ActionChains(driver).move_to_element(el).click(dis1).perform()    ###实例化 先移动再点击 perform() 执行

 

 拼图 鼠标拖拽

# source = driver.find_element_by_css_selector(‘#dragger‘)

# target = driver.find_element_by_css_selector(‘#i1‘)

# ActionChains(driver).drag_and_drop(source,target).perform()  ###鼠标拖拽

也可以使用click_and_hold()

release()

可多次书写最后执行

 

select 下拉框

# 实例化select 接受一个select标签 如果不是select标签则抛异常

# select = driver.find_element_by_xpath(‘//select[1]‘)

# # 获取标签是option的元素

# eles = select.find_elements_by_tag_name(‘option‘)

# for opt in eles:

#     print(opt.get_attribute(‘value‘))  获取vlaue属性(1.2.3.4)

# # 通过select标签的option中的value字段定位

# Select(select).select_by_value(‘4‘)

# # 一个标签中如果还要子集 可以在继续在这个标签的基础上进行find

# Select(select).select_by_index(3)

 

 

# 等待

# 第一种就是time.sleep()  这种是最low的

# 隐士等待 driver.implicitly_wait(10) 基本不用

# 显示等待

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

# WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.ID,‘i1‘)))

ele =WebDriverWait(driver,60,5).until(EC.presence_of_element_located((By.ID,‘i11‘)))

ele.send_keys(‘xxxxx‘)

css = ‘css=>#i1‘

get_element(css)

以上是关于Selenium之webdriverAPI的主要内容,如果未能解决你的问题,请参考以下文章

Selenium之Selenium IDE

Python selenium 实例之通过 selenium 查询禅道是否有任务或者 BUG

爬虫之selenium

selenium之怎么断言,selenium通过Assert预知世界

Python+selenium之疑难点解决之去除readonly的限制

python 开发之selenium