常用获取元素Driver总结

1、在 Windows 设置临时环境变量 cmd命令窗口 输入 path=%path%;E:\soft\python-3.5.2-embed-win32
  永久配置,在系统变量下找到path,在Path的最后面添加Python的安装目录
  D:\Python34,同样在PATHEXT中添加 .PY;.PYM   

  然后,输入python 出现版本信息就成功了。  

2、CMD命令窗口,清屏的方法
   import os
   os.system('cls')
   如果不要返回值0就是:
   import os
   i=os.system('cls')
3、查看当前系统时间
import time
   #-*-格式时间格式-*-
localtime = time.asctime( time.localtime(time.time()) )
   #-*-格式时间格式[格式化成2009-03-20 11:45:39形式]-*-
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
   #-*-格式时间格式[时间戳格式]-*-
time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
   #-*-输出格式化后的时间-*-
print ("本地时间为 :", localtime)  

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可  

5、乱码原因:
    因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台  

    直接打印utf-8的字符串当然是乱码了。   

    解决方法:
    在控制台打印的地方用一个转码就ok了,打印的时候这么写:
    print myname.decode('UTF-8').encode('GBK')   

    比较通用的方法应该是:
    import sys
    type = sys.getfilesystemencoding()
    print myname.decode('UTF-8').encode(type)  

    #-*-coding:UTF-8-*-  或者 import sys
    reload(sys)
    sys.setdefaultencoding('UTF-8')  

6、其实要驱动chrome浏览器必须要依赖Chromedriver文件才行,  

    下载地址:
    http://code.google.com/p/chromedriver/downloads/list  

    找到适合你自己系统的包之后下载解压出Chromedriver文件,并将此文件拷贝到java项目的根目录。
    还是拿上此教程的为例,我们直接爸chromedriver文件拷贝到HelloSelenium项目的根目录下也就
    是HelloSelenium目录下。这样就可以直接运行了。
7、  安装pyse : 将其克隆到本地,将pyse目录放到..\Python27\Lib\site-packages\目录下。
    https://github.com/defnngj/pyse
    python setup.py install  安装
    java -jar selenium-server-standalone-3.4.0.jar -multiWindow  

8、定位属性
        #########百度输入框的定位方式##########  

        #通过id方式定位
        browser.find_element_by_id("kw").send_keys("selenium")  

        #通过name方式定位
        browser.find_element_by_name("wd").send_keys("selenium")  

        #通过tag name方式定位
        browser.find_element_by_tag_name("input").send_keys("selenium")  

        #通过class name 方式定位
        browser.find_element_by_class_name("s_ipt").send_keys("selenium")  

        #通过CSS方式定位
        browser.find_element_by_css_selector("#kw").send_keys("selenium")  

        #通过xphan方式定位
        browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")  

        ############################################  

        browser.find_element_by_id("su").click()
        time.sleep(3)
        browser.quit()  

一、元素的定位  

1.webdriver提供的8种页面元素定位方法:
    id/name/class name/tag name/link text/partial link text/xpath/css selector
    其中python对应的8种方法:
    find_element_by_id()                       如: find_element_by_id("kw")
    find_element_by_name()                     如: find_element_by_name("wd")
    find_element_by_class_name()               如: find_element_by_class_name("s_ipt")
    find_element_by_tag_name()                 如: find_element_by_tag_name("input")
    find_element_by_link_text()                如:find_element_by_link_text(u"新闻")
    find_element_by_partial_link_text()        如:find_element_by_partial_link_text(u"一个很长的")
    find_element_by_xpath()                    如: find_element_by_xpath(" .//*[@id='kw']")
    find_element_by_css_selector()             如: find_element_by_css_selector("#kw")  

二、浏览器控制
    1.控制浏览器大小:set_window_size()    例如:driver.set_window_size(400,500)
                      maximize_window()    例如:driver.maximize_window()  #无参数
    2.浏览器后退、前进:back()-后退、farward()-前进  

三、鼠标事件
    ActionChains类提供的常用方法:
        1.1 perform():执行ActionChains中存储的所有行为,对整个事件进行提交
        1.2 context_click():    右击
        如:
           from selenium.webdriver.common.action_chains import ActionChains
                ...
           ActionChains(dr).context_click(docfile).perform()
        1.3 double_click():     双击
        如:
           from selenium.webdriver.common.action_chains import ActionChains
                ...
           doubleClick=dr.find_element_by_id("xxx")
           ActionChains(dr). double_Click(doubleClick).perform()
        1.4 drag_and_drop(source,target):    拖动
        如:
            from selenium.webdriver.common.action_chains import ActionChains
                ...
            dsource=dr.find_element_by_id("xxx")        #拖动的源元素
            dtarget=dr.find_element_by_id("xxx")        #释放的目标目标元素
           ActionChains(dr).drag_and_drop(dsource,dtarget).perform()
        1.5 move_to_element():  鼠标悬停
        如:
           from selenium.webdriver.common.action_chains import ActionChains
                ...
           above=dr.find_element_by_id("xxx")
           ActionChains(dr).move_to_element(above).perform()
四、键盘事件
    1.首先要导入键盘事件的包  

    from selenium.webdriver.common.keys importKeys
    ...
    dr.get("http://www.baidu.com")
    #输入内容
    dr.find_element_by_id("kw").send_keys("seleniumm")
    #删除输入内容的最后一个字母,
    dr.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
    #输入:空格+教程
    dr.find_element_by_id("kw").send_keys(Keys.SPACE)
    dr.find_element_by_id("kw").send_keys(u"教程")
    #ctrl+a全选输入框内容
    dr.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
    #ctrl+x剪贴输入框内容
    dr.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
    #ctrl+v剪贴输入框内容
    dr.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
    #回车键操作
    dr.find_element_by_id("su").send_keys(Keys.ENTER)
    dr.close()  

    常用的键盘操作整理:
    send_keys(Keys.BACK_SPACE)  #删除键BackSpace
    send_keys(Keys.SPACE)       #空格键Space
    send_keys(Keys.TAB)         #制表键Tab
    send_keys(Keys.ESCAPE)      #回退键Esc
    send_keys(Keys.ENTER)       #回车键Enter
    send_keys(Keys.CONTROL,'a') #Ctrl+a
    send_keys(Keys.CONTROL,'c') #Ctrl+c
    send_keys(Keys.CONTROL,'x') #Ctrl+x
    send_keys(Keys.CONTROL,'v') #Ctrl+x
    send_keys(Keys.F1)          #F1,类似的有F1-F12
五、获取验证  

    六、设置等待
    1.显示等待:等待某个条件成立时,继续执行,否则达到最大等待时间后抛出异常:TimeoutException,显示等待是针对当前要定位元素使用  

    WebDriverWait(driver, timeout,poll_frequency,ignored_exceptions=None).until(method,message)
    示例:
    WebDriverWait(dr,5,0.5,None).until(
        expected_conditions.presence_of_element_located((By.ID,"kw1")),message='test')
    解释:
    A.WebDriverWait():在设置时间内,默认间隔一段时间检测一次当前页面元素是否存在,若超过当前指定时间检测不到则抛出异常;
    B.driver:webdriver的浏览器驱动,ie、firefox、chromea
    C.timeout:最长超时时间,以秒为单位
    D.poll_frequency:休眠间隔时间-步长,默认0.5秒
    E.ignored_exceptions:超时后异常信息,默认抛出NoSuchElementException异常
    F.until(method,message): 调用该方法提供的驱动作为一个参数,直到返回值为True
    G.until_not(method,message):调用该方法提供的驱动作为一个参数,直到返回值为False
    H.expected_conditions类提供的预期条件实现有:
        title_is:判断标题是否是xx
        title_contains:判断标题是否包含xx
        presence_of_element_located:元素是否存在  

        visibility_of_element_located:元素是否存在  

        visibility_of:是否可见  

        presence_of_all_elements_located:判断一组元素是否存在  

        text_to_be_present_in_element:判断元素是否有xx文本信息    

        text_to_be_present_in_element_value:判断元素值是否有xx文本信息    

        frame_to_be_available_and_switch_to_it:表单是否可见,并切换到该表单  

        invisibility_of_element_located:判断元素是否隐藏
        element_to_be_clickable:判断元素是否点击,它处于可见和启动状态
        staleness_of:等到一个元素不再依附于DOM
        element_to_be_selected:被选中的元素
        element_located_to_be_selected:一个期望的元素位于被选中
        element_selection_state_to_be:一个期望检查如果给定元素被选中
        element_located_selection_state_to_be:期望找到一个元素并检查是否是选择状态
        alert_is_present:预期一个警告信息    

    2.隐式等待:通过一定的时长等待页面所有元素加载完成,哪个元素超出设置时长没被加载就抛出异常NoSuchElementException,隐式等待是针对所有元素的  

        implicitly_wait(5)    #默认单位为秒
    示例:
        dr.implicitly_wait(5)
七、sleep休眠    python中强制的程序等待
    from time import sleep
    sleep(4)    #默认单位秒,设置小于1秒的时间可以用小数点如sleep(0.6)
八、定位一组元素,类似与1中定位单个元素方法
    find_elements_by_id()                     如: find_elements_by_id("kw")
    find_elements_by_name()                   如: find_elements_by_name("wd")
    find_elements_by_class_name()             如: find_elements_by_class_name("s_ipt")
    find_elements_by_tag_name()               如: find_elements_by_tag_name("input")
    find_elements_by_link_text()              如:find_elements_by_link_text(u"新闻")
    find_elements_by_partial_link_text()      如:find_elements_by_partial_link_text(u"一个很长的")
    find_elements_by_xpath()                  如: find_elements_by_xpath(" .//*[@id='kw']")
    find_elements_by_css_selector()           如: find_elements_by_css_selector("#kw")
    使用场景:
    a.批量操作对象,如选中页面上所有复选框
    b.先获取一组对象,再在这组对象里定位需要的的一些对象,如定位所有复选框,然后选择最后一个
   例如:代码如下
checkbox.htm页面:  

    <styletype="text/css">
    body{font-size:12px; font-family:Tahoma;}
    .checkbox{vertical-align:middle; margin-top:0;}
    </style>
    <body>
    <inputclass="checkbox"type="checkbox"/>元旦
    <inputtype="checkbox"name="test"/>圣诞节
    <inputtype="checkbox"name="test"/>股市
    <inputtype="checkbox"name="test"/>阿凡达
    <inputtype="checkbox"name="test"/>十月围城
    <inputtype="checkbox"name="test"/>水价上调
    <inputtype="button"value="检测"id="btn"/>
    </body>  

python代码:   

       from selenium import webdriver  

        dr=webdriver.Firefox()
        dr.get("D:\\workspace\\pySelenium\\resources\\checkbox.htm")
    #使用tagname方式选择页面上所有tagname为input的元素
    select_tagname=dr.find_elements_by_tag_name("input")
    #使用xpath方式选择页面上所有tagname为input的元素
    select_xpath=dr.find_elements_by_xpath("//input[@type='checkbox']")
    #使用css_select方式选择页面上所有tagname为input的元素
    select_css=dr.find_elements_by_css_selector('input[type=checkbox]')
    for i in select_tagname:
    #循环对每个input元素进行点击选中操作
    if i.get_attribute("type")=='checkbox':
    i.click()
    for j in select_xpath:
    #循环对每个input元素进行点击取消操作
    j.click()
    for k in select_css:
    #循环对每个input元素进行点击选中操作
    k.click()
    #打印出checkbox的个数
    print'----页面上checkbox的个数为:',len(select_css)
    #使用pop()获取1组元素的第几个元素
    select_css.pop(0).click()#第一个
    select_css.pop(1).click()#第二个
    select_css.pop().click()#最后一个
    select_css.pop(-1).click()#最后一个
    select_css.pop(-2).click()#倒数第二个
    dr.close()  

    备注:pop():选择一组元素中的某一个,要注意的是:pop()和pop(-1)都表示最后一个元素
九、多表单切换(对于有frame嵌套表单的操作)
frame页面:  

    <html>
    <body>
    <frameset>
    <h3>frame</h3>
    <iframeid='frameid'name='frameName'width="800"height="500"src="http://www.baidu.com"/>
    </frameset>
    </body>
    </html>  

python代码:  

    dr.get("D:\\workspace\\pySelenium\\resources\\frame.htm")
    dr.switch_to_frame("frameid")#通过frame的id进入iframe
    #dr.switch_to_frame("frameName") #通过frame的name进入iframe
    #下面可以对frame进行操作了
    dr.find_element_by_id("kw").send_keys("selenium")
    dr.find_element_by_id("su").click()
    dr.switch_to_default_content()#退出当前frame返回上一层  

备注:1.switch_to_frame()默认直接取表单的id或者name属性来切换
      2.完成当前frame表单操作后,可以通过switch_to_default_content()方法返回上一层表单,即离的最近的switch_to_frame()方法
      3.对于frame中没有id和name属性的通过下面方式进入frame(定位到frame以页面对象传入)
python代码:  

    dr.get("D:\\workspace\\pySelenium\\resources\\frame.htm")
     #定位到frame页面元素
        framepath=dr.find_element_by_class_name("frameClassname")
        dr.switch_to_frame(framepath)#通过frame页面对象进入iframe
    #下面可以对frame进行操作了
    dr.find_element_by_id("kw").send_keys("selenium")
    dr.find_element_by_id("su").click()
    dr.switch_to_default_content()#退出当前frame返回上一层  

十、多窗口切换
    selenium-webdriver中使用switch_to_window()方法来切换任意窗口,常用方法有
          driver.current_window_handle    #获取当前窗口句柄
      driver.window_handles            #返回所有窗口句柄到当前会话
      driver.switch_to_window()       #进入窗口,用于切换不同窗口  

python代码:      

    dr.get("http://www.baidu.com")
    current_handle=dr.current_window_handle #获取百度首页窗口句柄
    index_login=dr.find_element_by_xpath("//div[@id='u1']/a[@class='lb']")#获取登录按钮对象
    index_login.click()#点击登录
    dr.implicitly_wait(5)
    dr.find_element_by_class_name("pass-reglink").click()#点击立即注册按钮
    all_handles=dr.window_handles #获取所有打开窗口句柄
    for handle in all_handles:
    if handle==current_handle:
    dr.switch_to_window(handle)
    '''''
    ...对首页窗口进行操作
    '''
    print'----首页页面title:',dr.title
    for handle in all_handles:
    if handle!=current_handle:
    dr.switch_to_window(handle)
    '''''
    ...对注册窗口进行操作
    '''
    print'----注册页面title:',dr.title  

十一、警告框处理
    webdriver中处理js生成的alert、confirm、prompt处理方法是:使用switch_to_alert()定位到alert/confirm/prompt,然后使用text、accept、dismiss、send_keys来根据需要操作。
    text:返回alert、confirm、prompt中的文字信息
    accept:点击确认按钮
    dismiss:点击取消按钮
    send_keys:在alert、confirm有对话框时输入值
python代码:  

    dr.get("http://www.baidu.com")
    set_link=dr.find_element_by_xpath("//div[@id='u1']/a[@class='pf']")#找到设置链接元素
    ActionChains(dr).move_to_element(set_link).perform()#鼠标移动到设置上
    dr.find_element_by_xpath("//a[@class='setpref']").click()#点击搜索设置链接
    time.sleep(3)    #加等待时间 等按钮可用,否则会报错
    save_set=dr.find_element_by_css_selector("#gxszButton > a.prefpanelgo")#获取保存设置按钮
    save_set.click()#点击保存设置按钮  

    alert=dr.switch_to_alert()                    #进入alert
    print'----弹出alert中内容为:',alert.text #打印对话框里的文字内容
    alert.accept()#对话框里点击alert中确定按钮
    #alert.dismiss() #对话框里点击取消按钮
    #alert.send_keys("对话框中输入的内容") #在对话框里输入内容  

十二、上传文件
    分2种:普通上传、插件上传
    普通上传:将本地文件的路径作为一个值放到input标签中,通过form表单提交时,将值传给服务器中去
    插件上传:指基于flash、javascript或ajax技术实现的上传功能或插件。
    1.针对普通上传用send_keys实现
python代码:  

    dr.get("D:\\workspace\\pySelenium\\resources\\upload.htm")
    loadFile=dr.find_element_by_name("filebutton")# 获取上传文件input元素节点
    loadFile.send_keys("D:\\workspace\\pySelenium\\resources\\frame.htm")#输入上传文件地址来实现上传  

    2.插件上传:使用AutoIt实现,--需要安装AutoIt程序
        AutoIt安装,使用暂时略,需要时再追加,流程为:用AutoIt编写上传文件脚本生成exe文件,在python脚本中进行调用
python代码:  

    loadFile=dr.find_element_by_name("filebutton")# 获取上传按钮
    loadFile.click()    #点击上传按钮,弹出上传对话框
    os.system("D:\\autoItFile.exe")    #调用autoIt生成的exe文件,实现导入  

十三、下载文件:使用AutoIt实现,--需要安装AutoIt程序,方法同上传
python代码:  

    ffp=webdriver.FirefoxProfile()
    ffp.set_preference("browser.download.folderList",2)#0:代表下载到浏览器默认路径下;2:下载到指定目录
    ffp.set_preference("browser.download.manager.showWhenStarting",False)#是否显示开始:True:显示;False:不显示
    ffp.set_preference("browser.download.dir", os.getcwd())#指定下载文件目录,os.getcwd()无参数,返回当前目录
    # ffp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream")#下载文件类型,
    #指定下载页面的content-type值,application/octet-stream为文件类型,http-content-type常用对照表搜索百度
    dr=webdriver.Firefox(firefox_profile=ffp)
    dr.get("https://pypi.python.org/pypi/selenium#downloads")
    dr.find_element_by_xpath("//div[@id='content']/div[3]/table/tbody/tr[3]/td[1]/span/a[1]").click()
    #接下来使用autoIt实现  

十四、cookies操作
    webdriver操作cookies的方法:
    get_cookies():获得所有cookies的值
    get_cookie(name):获得有特定name值的cookie信息
    add_cookie(cookie_dict):添加cookie,必须有name和value
    delete_cookie(name):删除特定名称的cookie信息,通过name找到特定的cookie并删除
    delete_all_cookies():删除浏览器中所有cookie的信息
    注意:1.cookie是以字典形式进行存储的;
    2.使用场景:如登录功能会把用户名写入浏览器cookie指定key为username,那么就可以通过get_cookies()找到username,打印value,找不到说明保存浏览器的cookie是有bug的。
python代码:  

    num=1
    dr.get("http://www.baidu.com")
    cookies=dr.get_cookies()#获取cookie的所有信息
    for ck in cookies:
    print'----所有cookie',num,':',ck #打印cookie的所有信息
    num=num+1
    print'----按name查cookie:',dr.get_cookie("PSTM")#通过cookie的name获取cookie信息
    dr.add_cookie({'name':'hello','value':'123456789'})#向name和value添加会话信息
    cookies2=dr.get_cookies()#重新获取cookie的所有信息
    for ck2 in cookies2:
    if ck2['name']=='hello':
    print"----加入的cookie信息:%s-->%s",(ck2['name'],ck2['value'])  

十五、javascript调用,python使用的方法:execute_script()
python代码:  

    dr.get("http://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("selenium")
    dr.find_element_by_id("su").click()
    js="var q=document.documentElement.scrollTop=1000"    #滚动条滚到最下面
    dr.execute_script(js)
    time.sleep(4)
    js2="var q=document.documentElement.scrollTop=0"      #滚动条滚到页面顶
    dr.execute_script(js2)  

十六、截图,适用于脚本出错时,对当前窗口进行截图保存,使用函数:get_screenshot_as_file()
python代码:  

    dr.get("http://www.baidu.com")
    try:
    dr.find_element_by_id("kw1").send_keys("selenium")
    dr.find_element_by_id("su").click()
    exceptNoSuchElementException,msg:
    dr.get_screenshot_as_file("d:\\error.jpg")    #截图输出到d盘
    print msg
    dr.close()  

十七、关闭窗口
    quit():退出相关驱动程序并关闭所有窗口。
    close():关闭当前窗口,打给多个窗口时,可使用来关闭当前窗口
十八、验证码处理
    方法1:去掉验证码,问题:如果是在正式环境跑脚本那么在取掉会存在风险
    方法2:设置万能验证码,不需要取消验证码,在程序中留后门--设置一个万能验证码,输入万能验证码了就标识通过
python代码:   

    import random
    randnum=random.randint(1000,9999)
    print"----生成随机数为:",randnum
    input_num=input(u"请输入验证码:")
    print"----输入验证码为:",input_num
    if input_num==randnum:
    print"随机数正确,登录成功"
    elif input_num==1234:
    print"输入正确,登录成功"
    else:
    print"登录失败"  

    方法3:使用cookie方法获取,读取之前登录的cookie值访问时,直接登录,不需要验证码    

--------------------------------------------------- CMD -----------命令启动Python脚本
    文件命名为:test.bat   貌似不能用
    @echo off
    echo.
    python E:\pythonScript\Auto_linknetwork.py
    cd /D C:\Python27
    python.exe
    rm #!C:\Python27/python.exe
    import os;
    i=os.system("清屏",cls);
    import time;
    #-*-格式时间格式[格式化成2009-03-20 11:45:39形式]-*-
    time.strftime("%Y-%m-%d %H:%M:%S", time.localtime());
    print ("系统当前时间为 :", localtime);
1、截屏
    driver.save_screenshot('E:\\pythonScript\\images\\'+strTime+'baidu.png')  

三. WebElement接口获取值
        通过WebElement接口可以获取常用的值,这些值同样非常重要。  

    size 获取元素的尺寸
    text 获取元素的文本
    get_attribute(name) 获取属性值
    location 获取元素坐标,先找到要获取的元素,再调用该方法
    page_source 返回页面源码
    driver.title 返回页面标题
    current_url 获取当前页面的URL
    is_displayed() 设置该元素是否可见
    is_enabled() 判断元素是否被使用
    is_selected() 判断元素是否被选中
    tag_name 返回元素的tagName  

 四.得到函数中的返回值
    函数()
     def returnval():  

     driver = webdriver.Chrome()
     print u"\n回传值"
     return driver  

     #returnval()  

     src = ("http://hos.sf-express.com")  

     returnval().get(src)  

     print returnval()  

   将函数作为返回值返回,不返回结果只返回函数
     def lazy_sum(*args):
         def sum():
             ax = 0
             for n in args:
                 ax = ax + n
             return ax
          return sum
     >> f = lazy_sum(1, 3, 2, 7, 9)
     >> f
     >> f()
    #此时才是真正的计算出函数值;  

新建实例driver = webdriver.Chrome()
1.获取当前页面的Url函数
方法:current_url
实例:
driver.current_url
2.获取元素坐标  

方法:location  

解释:首先查找到你要获取元素的,然后调用location方法
实例:
driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location
3.表单的提交  

方法:submit
解释:查找到表单(from)直接调用submit即可
实例:  

driver.find_element_by_id("form1").submit()  

4.获取CSS的属性值
方法:value_of_css_property(css_name)
实例:
driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")
5.获取元素的属性值
方法:get_attribute(element_name)
实例:
driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")
6.判断元素是否被选中
方法:is_selected()
实例:
driver.find_element_by_id("form1").is_selected()
7.返回元素的大小
方法:size
实例:
driver.find_element_by_id("iptPassword").size
返回值:{'width': 250, 'height': 30}
8.判断元素是否显示
方法:is_displayed()
实例:
driver.find_element_by_id("iptPassword").is_displayed()
9.判断元素是否被使用
方法:is_enabled()
实例:
driver.find_element_by_id("iptPassword").is_enabled()
10.获取元素的文本值
方法:text
实例:driver.find_element_by_id("iptUsername").text
11.元素赋值
方法:send_keys(*values)
实例:
driver.find_element_by_id("iptUsername").send_keys('admin')
注意如果是函数需要增加转义符u,eg.
driver.find_element_by_id("iptUsername").send_keys(u'青春')
12.返回元素的tagName
方法:tag_name
实例:
driver.find_element_by_id("iptUsername").tag_name
13.删除浏览器所以的cookies
方法:delete_all_cookies()
实例:
driver.delete_all_cookies()
14.删除指定的cookie
方法:delete_cookie(name)
实例:deriver.delete_cookie("my_cookie_name")
15.关闭浏览器
方法:close()
实例:driver.close()
16.关闭浏览器并且推出驱动程序
方法:quit()
实例:driver.quit()
17.返回上一页
方法:back()
实例:driver.back()
18.设置等待超时
方法:implicitly_wait(wait_time)
实例:driver.implicitly_wait(30)
19.浏览器窗口最大化
方法:maximize_window()
实例:driver.maximize_window()
20.查看浏览器的名字
方法:name
实例:drvier.name
以上内容转发自http://blog.sina.com.cn/s/blog_b5fe6b270101c8v0.html 

原文地址:https://www.cnblogs.com/i969639/p/11201184.html

时间: 2024-10-19 10:13:27

常用获取元素Driver总结的相关文章

UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.title() 获取元素文本:driver.find_XX().text 获取元素标签:driver.find_XX().tag_name 获取元素的其他属性的值:driver.find_XX().get_attribute("class") 获取class属性的值 获取文本框输入的值:drive

常用数组、字符串方法总结&amp;获取元素、DOM操作

字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符串: 注释:字符串中第一个字符的下标是 0.如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串. 2 concat() 方法用于连接两个或多个字符串并返回连接后的字符串 不改变原始字符串 语法:stringObject.concat(stringX,str

获取元素的属性

简要: 通常在做断言之前,都要先获取界面上的元素属性,然后与期望结果进行对比 一.获取页面title 代码: #coding:utf-8from selenium import webdriverimport timedriver=webdriver.Chrome()driver.implicitly_wait(20)driver.get("https://www.baidu.com")time.sleep(2)title=driver.titleprint(title) driver

获取元素样式信息于三中获取方式的区别

大家都知道,用document.getElementById(‘element').style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到我们要的信息了. DOM标准里有个全局方法getComputedStyle,可以获取到当前对象样式规则信息,如:getComputedStyle(obj,null).paddingLeft,就能获取到对象的左内边距.但是事情还没完,万恶的IE不支持此方法,它有自己的一个实

selenium获取元素后用click()点击没有作用,用Keys.ENTER就可以成功

selenium获取元素后用click()点击没有作用,用键盘输入enter(Keys.ENTER)就可以成功 #coding = utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.baidu.com") driver.find_element_by_xpath(&

selenium获取元素内容,iframe切换,和常用方法

获取元素信息 1. text 属性,显示该元素在web页面显示出来的文本内容 2. get_attribute方法 获取某个属性的值: element.get_attribute(元素属性) element.get_attribute('href') element.get_attribute('style') 获取该元素对应HTML源代码: element.get_attribute('outerHTML') 获取该元素的内部部分的HTML源代码: element.get_attribute(

selenium获取元素

1.获取窗口titledriver.title2.获取urldriver.current_url3.获取窗口截图driver.get_screenshot_as_file('window.png')4.获取元素截图ele.screenshot('ele.png')5.刷新页面driver.refresh()6.窗口最大化driver.maximize_window()7.窗口最小化driver.minimize_window()8.设置窗口大小(宽,高)driver.set_window_siz

javascript 获取元素相对于浏览器的位置 ie 5,6,7,8,9,10 测试通过

//获取元素相对于浏览器的位置 getPosition: function (el) { _x = 0, _y = 0; while (true) { //todo 由于 获取td tr的offsetTop 值都是一样 所以要过滤处理 if (el.tagName == "TR") { el = el.parentNode; continue; } _x += el.offsetLeft; _y += el.offsetTop; if (el.tagName == 'BODY') br

js中用tagname和id获取元素的3种方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>3种用tagname和id获取元素的方法</title> <style> body{     margin: 0; } ul{     margin: 0;     padding: 0;     list-style: none; } h1{