selenium的常用api

简介:

网上找了蛮久,好多中文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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,049评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,478评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,109评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,097评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,115评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,280评论 1 279
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,748评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,398评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,553评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,440评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,487评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,176评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,750评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,821评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,049评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,559评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,150评论 2 341