北京列举网 > 教育培训 > 电脑/网络 > 拉勾教育Java教程SeleniumJava页面元素定 位
北京
[切换城市]

拉勾教育Java教程SeleniumJava页面元素定 位

更新时间:2020-10-12 14:05:06 浏览次数:73次
区域: 北京 > 海淀 > 中关村
类别:软件工程师培训
地址:创业大街
一、操作目的
1.1 自动化测试常用操作
1、定 位网页上的元素,并存储到一个变量中;
2、对变量进行操作,比如点击或输入文字;
3、设定页面元素的操作值;
二、定 位方法汇总,拉勾IT课小编为大家分析,该元素的技术。
2.1 findElement(s)
click(self, on_element=None)
click_and_hold(self, on_element=None)
context_click(self, on_element=None)
double_click(self, on_element=None)
drag_and_drop(self, source, target)
drag_and_drop_by_offset(self, source, xoffset, yoffset)
key_down(self, value, element=None)
key_up(self, value, element=None)
move_by_offset(self, xoffset, yoffset)
move_to_element(self, to_element)
move_to_element_with_offset(self, to_element, xoffset, yoffset)
pause(self, seconds)
perform(self)
release(self, on_element=None)
reset_actions(self)
send_keys(self, *keys_to_send)
send_keys_to_element(self, element, *keys_to_send)
2.2、selenium.webd***mon.by
CLASS_NAME = 'class name'
CSS_SELECTOR = 'css selector'
ID = 'id'
LINK_TEXT = 'link text'
NAME = 'name'
PARTIAL_LINK_TEXT = 'partial link text'
TAG_NAME = 'tag name'
XPATH = 'xpath'
2.3、selenium.webd***mon.keys
ADD = 'ue025'
ALT = 'ue00a'
ARROW_DOWN = 'ue015'
ARROW_LEFT = 'ue012'
ARROW_RIGHT = 'ue014'
ARROW_UP = 'ue013'
BACKSPACE = 'ue003'
BACK_SPACE = 'ue003'
CANCEL = 'ue001'
CLEAR = 'ue005'
COMMAND = 'ue03d'
CONTROL = 'ue009'
DECIMAL = 'ue028'
DELETE = 'ue017'
DIVIDE = 'ue029'
DOWN = 'ue015'
END = 'ue010'
ENTER = 'ue007'
EQUALS = 'ue019'
ESCAPE = 'ue00c'
F1 = 'ue031'
F10 = 'ue03a'
F11 = 'ue03b'
F12 = 'ue03c'
F2 = 'ue032'
F3 = 'ue033'
F4 = 'ue034'
F5 = 'ue035'
F6 = 'ue036'
F7 = 'ue037'
F8 = 'ue038'
F9 = 'ue039'
HELP = 'ue002'
HOME = 'ue011'
INSERT = 'ue016'
LEFT = 'ue012'
LEFT_ALT = 'ue00a'
LEFT_CONTROL = 'ue009'
LEFT_SHIFT = 'ue008'
META = 'ue03d'
MULTIPLY = 'ue024'
NULL = 'ue000'
NUMPAD0 = 'ue01a'
NUMPAD1 = 'ue01b'
NUMPAD2 = 'ue01c'
NUMPAD3 = 'ue01d'
NUMPAD4 = 'ue01e'
NUMPAD5 = 'ue01f'
NUMPAD6 = 'ue020'
NUMPAD7 = 'ue021'
NUMPAD8 = 'ue022'
NUMPAD9 = 'ue023'
PAGE_DOWN = 'ue00f'
PAGE_UP = 'ue00e'
PAUSE = 'ue00b'
RETURN = 'ue006'
RIGHT = 'ue014'
SEMICOLON = 'ue018'
SEPARATOR = 'ue026'
SHIFT = 'ue008'
SPACE = 'ue00d'
SUBTRACT = 'ue027'
TAB = 'ue004'
UP = 'ue013'
2.4、selenium.webdriver.Chrome
函数      描述
back()      返回
close()      关闭当前窗口
delete_all_cookies()      删除所有 cookies
delete_cookie('name')      按名字删除 cookie
find_element(by='id', value=None)      查找给定标识符的元素
find_element_by_class_name('name')      通过类名来定 位元素
find_element_by_css_selector('css_selector')      通过 css 选择器来定 位元素
find_element_by_id('id')      通过 id 来定 位元素
find_element_by_link_text('link_text')      通过链接内容来定 位元素
find_element_by_partial_link_text('link_text')      通过链接部分内容来定 位元素
find_element_by_name('name')      通过元素名称来定 位元素
find_element_tag_name('name')      通过标签名来定 位元素
find_element_by_xpath('xpath')      通过 xpath 来定 位元素
find_elements(by='id', value=None)      
find_elements_by_class_name('name')      
find_elements_by_css_selector('css_selector')      
find_elements_by_id('id')      
find_elements_by_link_text('text')      
find_elements_by_partial_link_text('link_text')      
find_elements_by_name('name')      
find_elements_by_tag_name('name')      
find_elements_by_xpath('xpath')      
forward()      向前
fullscreen_window()      全屏
get('url')      访问 url 页面
get_cookie(''name')      通过名称获取 cookie
get_cookies()      获取所有 cookies
get_log('log_type')      获取日志,类型有:browser、driver、client、server
get_screenshot_as_base64(self)      获取图片存为 base64 编码
get_screenshot_as_file('file_name')      获取图片存为文件,需要指定文件名,png 后缀
get_screenshot_as_png()      将图片存为二进制数据
get_window_position(windowHandle='current')      获取当前窗口的 x,y 位置
get_window_rect()      获取 x,y 坐标和当前窗口的宽高
get_window_size(windowHandle='current')      获取当前窗口的宽高
implicitly_wait('time_to_wait)      隐式等待一个元素加载或命令执行完成的时间。
maximize_window()      大化
minimize_window()      小化
refresh()      刷新
save_screenshot('findname')      保存屏幕截图
set_page_load_timeout('time_to_wait')      
set_script_timeout('time_to_wait')      
set_window_position(x, y, windowHandle='current')      
set_window_rect(x, y, width, height)      
set_window_size(width, height, windowHandle='current')      
start_client()      
start_session(capabilities, browser_profile=None)      
stop_client()      
switch_to_active_element()      
switch_to_alert()      
switch_to_default_content()      
switch_to_frame('frame_reference')      切换到指定框架
switch_to_window('window_name')      切换到指定窗口
那么总的来说,查找元素分为以下两类:
1、查到单个元素
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
2、查找多个元素(返回列表)
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
上面的是公有方法,还有两个私有方法是:
find_element()
find_elements()
# 这两个方法使用的时候,需要提供两个参数
# 一个是 By.xx ,这里的 xx 分别是上面列出的几种定 位方法的大写
# 比如 find_element(By.ID, 'su')
# 比如 find_element(By.CSS_SELECTOR, 'h1')
三、编写实际代码测试
3.1 元素定 位
// id 定 位
WebElement username = driver.findElement(By.id("username"));
// name 定 位
WebElement username = driver.findElement(By.name("username"));
// 部分链接文字定 位
WebElement link = driver.findElement(By.partialLinkText("sog"));
// 使用标签名定 位
WebElement link = driver.findElement(By.tagName("a"));
// 使用 class 名定 位
WebElement input = driver.findElement(By.className("tight"));
// 使用xpath定 位
WebElement button = driver.findElement(By.xpath("/html/body/div/input[@value='查询']"));
// 上述xpath使用的是路径定 位,当页面发生变化时,很容易造成代码失效。
// 所以推荐使用相对路径,比如将上述定 位改成:"//input[@value='查询']"
// 如果定 位元素是列表时,下标从1开始

// css定 位
WebElement button = driver.findElement(By.cssSelector("input#div > input#ok"));
WebElement button = driver.findElement(By.cssSelector("input#div > input + a + img"));
WebElement button = driver.findElement(By.cssSelector("input:nth-child(2)"));
WebElement button = driver.findElement(By.cssSelector("input#div :nth-child(2)"));
WebElement button = driver.findElement(By.cssSelector("a['href' ^= 'http://www.***']"));
// ^= 匹配开头,$= 匹配结尾 *= 链接含有即匹配中
xpath模糊定 位
xpath函数      定 位表达式      解释
Starts-with()      //img[starts-with(@alt,'div1')]      查找图片alt属性开始位置包含“div1“关键字的页面元素
Contains()      //img[contains(@alt,'g1')]      查找图片alt属性包含“gl“关键字的页面元素
XPath 轴(Axis)定 位:
关键字      含义      实例      解释
parent      选择当前节点的上层节点      //img[@alt='ok']/parent::div      查找alt属性为ok的图片,然后向定 位上层div元素
child                  
ancestor      所有上层节点            
descendant      所有下层节点            
following      当前节点之后所有节点            
following-sibling      后面所有同级节点            
preceding      当前节点之前所有节点            
preceding-sibling      前面所有同级节点            

北京电脑/网络相关信息
4月23日
办公软件培训
平谷-平谷城区
4月19日
办公软件培训
平谷-平谷城区
4月11日
办公软件培训
平谷-平谷城区
4月9日
办公软件培训
平谷-平谷城区
4月7日
4月1日
注册时间:2020年08月17日
UID:706396
---------- 认证信息 ----------
手机已认证
查看用户主页