selenium的常用api

作者: Simon0903 | 来源:发表于2018-08-28 13:23 被阅读17次

    简介:

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

    相关文章

      网友评论

        本文标题:selenium的常用api

        本文链接:https://www.haomeiwen.com/subject/yzktwftx.html