简介:
网上找了蛮久,好多中文api文档都被设置权限浏览,趁还未完全被商业化,记录一个方便日后使用
注:任何形式转载文章,请留言作者并注明出处)
作者:Simon0903
链接:https://www.jianshu.com/u/2b4bc3b5e6fc
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
调用说明:
driver.属性值
变量说明:
1.driver.current_url:用于获得当前页面的URL
2.driver.title:用于获取当前页面的标题
3.driver.page_source:用于获取页面html源代码
4.driver.current_window_handle:用于获取当前窗口句柄
5.driver.window_handles:用于获取所有窗口句柄
函数说明:
一、定位模块.driver.find_element_*():定位元素()
By.id:driver.findElement(By.id("id));
By.name:driver.findElement(By.name("name"));
By.xpath:driver.findElement(By.xpath("//input[@id='id']"));
By.className:driver.findElement(By.className("input_class"));
By.cssSelector:driver.findElement(By.cssSelector(".input_class"));
By.linkText:driver.findElement(By.linkText("link"));
By.partialLinkText:driver.findElement(By.partialLinkText("link"));
By.tagName:driver.findElement(By.tagName("form"));
2.driver.get(url): #浏览器加载url。
实例:driver.get("http//:www.baidu.com")
3.driver.forward():#浏览器向前(点击向前按钮)。
4.driver.back():#浏览器向后(点击向后按钮)。
5.driver.refresh():#浏览器刷新(点击刷新按钮)。
6.driver.close():#关闭当前窗口,或最后打开的窗口。
7.driver.quit():关闭所有关联窗口,#并且安全关闭session。
8.driver.maximize_window(): #最大化浏览器窗口。
9.driver.set_window_size(宽,高):#设置浏览器窗口大小。
10.driver.get_window_size():#获取当前窗口的长和宽。
11.driver.get_window_position(): #获取当前窗口坐标。
12.driver.get_screenshot_as_file(filename): #截取当前窗口。
实例:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg')
13.driver.implicitly_wait(秒): #隐式等待,通过一定的时长等待页面上某一元素加载完成。若提前定位到元素,则继续执行。若超过时间未加载出,则抛出NoSuchElementException异常。
实例:driver.implicitly_wait(10) #等待10秒
14.driver.switch_to_frame(id或name属性值): #切换到新表单(同一窗口)。若无id或属性值,可先通过xpath定位到iframe,再将值传给switch_to_frame()
15.driver.switch_to.parent_content(): #跳出当前iframe标签内嵌的表单(往上回退一级目录)。该方法默认对应于离它最近的switch_to.frame()方法。
16.driver.switch_to.default_content(): #跳回最外层的html页面。
17.driver.switch_to_window(窗口句柄):#切换到新窗口。
18.driver.switch_to_alert(): #警告框处理。处理JavaScript所生成的alert,confirm,prompt.
19.driver.execute_script(js): #调用js。
20.driver.get_cookies(): #获取当前会话所有cookie信息。
21.driver.get_cookie(cookie_name):#返回字典的key为“cookie_name”的cookie信息。
实例:driver.get_cookie("NET_SessionId")
22.driver.add_cookie(cookie_dict):添加cookie。#“cookie_dict”指字典对象,必须有name和value值。
23.driver.delete_cookie(name,optionsString):#删除cookie信息。
24.driver.delete_all_cookies(): #删除所有cookie信息。
25.element.isDisplay(); #判断元素是否显示
26.element.getAttribute() #得到元素的属性值
二、动作链
driver.navigate().to("http://www.baidu.com/"); #打开百度
driver.navigate().forward() # 向前
driver.navigate().back() # 向后
driver.navigate().refresh() # 刷新
鼠标操作
ActionChains方法列表
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
click(on_element=None) #单击鼠标左键
click_and_hold(on_element=None) #点击鼠标左键,不松开
context_click(on_element=None) #点击鼠标右键
double_click(on_element=None) #双击鼠标左键
drag_and_drop(source, target) #拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) #拖拽到某个坐标然后松开
key_down(value, element=None) #按下某个键盘上的键
key_up(value, element=None) #松开某个键
move_by_offset(xoffset, yoffset) #鼠标从当前位置移动到某个坐标
move_to_element(to_element) #鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) #移动到距某个元素(左上角坐标)多少距离的位置
perform()#执行链中的所有动作
release(on_element=None) #在某个元素位置松开鼠标左键
send_keys(*keys_to_send) #发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) # 发送某个键到指定元素
登录后拿cookie实例:
% driver.get('https://www.csdn.com/')
% print("登录前:")
% for cookie in driver.get_cookies():
% print(cookie)
% loginC = driver.find_element_by_css_selector('#login_area')
% enter = loginC.find_element_by_link_text('登录')register.click()
#等待20秒,手动输入账号密码,登录。记得勾选下次自动登录,就怕页面有检测机制
% time.sleep(25)
% print("登录后: ")
% for cookie01 in driver.get_cookies():
% print(cookie01)
% driver.quit()
判断元素是否显示
element.isDisplay();
获取元素属性
element.getAttribute() #得到元素的属性值
输入框操作
element.sendKeys(“test”) # 在输入框中输入内容test:
element.clear() # /将输入框清空
element.getText() # 获取输入框的文本内容:
下拉选择框
select.selectByVisibleText(“A”);
select.selectByValue(“1”);
select.deselectAll();
select.deselectByValue(“1”);
select.deselectByVisibleText(“A”);
select.getAllSelectedOptions();
select.getFirstSelectedOption();
单选框
radio.click() # 选择某个单选项
radio.clear() #清空某个单选项
radio.isSelected() #/判断某个单选项是否已经被选择
多选框
checkbox.click();
checkbox.clear();
checkbox.isSelected() #判断多选框是否被选择
checkbox.isEnabled() #判断多选框是否可用
按钮
button.click() #点击按钮
button.isEnabled () #判断按钮是否可用
Alert对话框
alert.accept() #点击确定
alert.dismiss() #点击取消
alert.getText() #获取Alert对话框的文本
表单
approve.click()
approve.submit() #只适合于表单的提交
超时设置
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) #识别元素时的超时时间
driver.manage().timeouts().pageLoadTimeout(10,TimeUnit.SECONDS) #页面加载时的超时时间
driver.manage().timeouts().setScriptTimeout(10,TimeUnit.SECONDS) #异步脚本的超时时间
截屏
File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE)