切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
笔记 selenium[复制链接]
发表于 2014-2-26 23:14:14 | 显示全部楼层 |!read_mode!
这是自动化的一些笔记,还有些没有书写,等下再发一个
浏览器操作
1.open()  打开
    1.1当target为空时,将打开的Base URL中填写到页面
    1.2当target不为空,就是打开Base URL + Target页面,比如Base URL为http://www.baidu.com,而Target为index.html,那么我们打开的是http://www.baidu.com/index.html
    1.3当target以http://开头时,将忽略Base URL,直接打开Target中的网址
2.goBack() 后退
    无参数,所以target和value可以不填
3.refresh() 刷新
    无参数,所以target和value可以不填
4.windowFocus() 激活窗口
    无参数,所以target和value可以不填
5.windowMaximize() 最大化
    无参数,所以target和value可以不填
6.close() 关闭当前窗口
    无参数,所以target和value可以不填

界面元素操作
1.type(locator,value)
    target--元素定位表达式
    value--表达式的值
2.typeKey(locator,value)   (介个不好解释,反正很少用到)
    target--元素定位表达式
    value--表达式的值
3.click(locator)
    target--元素定位表达式
4.clickAt(locator,coordString)
    target--元素定位表达式
    Value--制定元素的坐标位置
5.doubleClick(locator)    (不建议单独使用,如果使用,可以在后面添加waitForPageToLoad)(或者使用doubleClickAndWait命令)
    target--元素定位表达式   
6.doubleclickAt(locator,coordString)
    target--元素定位表达式
    Value--制定元素的坐标位置
7.select(selectLocator,optionLocator)
这个选项有点特别,在command中输入select,找到<select id="nr" name="NR">,在target中输入name='NR',value处可以输入4种方法(取一种即可)。1.label=文本值;2.value=真实值;3.id=option2;4.index=2(选项索引)
    target--下拉列表框的定位表达式
    Value--下拉列表框选项的定位表达式
8.check(locator)    (这是单选框或者复选框,不是onclick)
    target--元素定位表达式
9.uncheck(locator)  (这是取消单选框或者取消复选框,不是onclick)
    target--元素定位表达式
10.focus(locator) 焦点
    target--元素定位表达式


键盘鼠标模拟操作  (略过)

设置类操作
1.setTimeout(timeout)   超时时间
2.setSpeed(value)       测试执行速度

测试控制、调试类操作
1.pause(waitTime)        暂停  指定时间暂定
   target--元素定位表达式
2.break()        停止
    无参数,所以target和value可以不填
3.captureEntirePageScreenshot(filename,kwargs)   快照  
    其实就一个参数,在command中输入captureEntirePageScreenshot,然后在target输入保存图片地址,必须为png类型
4.highlight(locator)  指定元素高亮,基本用于调试,只能用一次
5.echo(locator)       打印信息,用于调试



Accessor

1.store            存储前者的target值
command             target                  value
store            滴答滴                a
echo            ${a}
输出的是          滴答滴
   
2.storeTitle        存储网页title的值
command             target                  value
open            http://baidu.com[/url]
storeTitle           a
echo            ${a}
输出的是          百度一下,你就知道

3.storeLocation     获取URL
command             target                  value
open            http://baidu.com
storeTitle           a
echo            ${a}
输出的是          http://baidu.com

4.storeValue        输出
command                 target              value
open                http://www.google.com.hk   
type                   id=lst-ib            ss
storeValue            id=lst-ib            a
echo                ${a}
输出的是          ss

5.storeEditable         网页是否存在input类型且是否可以编辑
<h1 id="p_title">兰州女教师遭割喉案件告破&nbsp;犯罪嫌疑人被抓获</h1>

command                 target              value
open                http://www.google.com.hk   
type                   id=lst-ib            ss
echo                是否可以输出:${a}
输出的是          是否可以输出:True

6.storeText        网页文本
command                 target              value
open                http://www.google.com.hk   
type                   id=lst-ib            ss
echo                是否可以输出:${a}
输出的是          是否可以输出:True

7.storeChecked        存储复选框或则单选是否被勾上,是则返回True,否则返回false
<input id="TANGRAM__3__memberPass" class="pass-checkbox-input pass-checkbox-memberPass" type="checkbox" checked="checked" name="memberPass">
command                 target              value
open            https://passport.baidu.com/v2/?login   
type                   id=lst-ib            ss
echo                是否可以输出:${a}
输出的是          是否可以输出:True

8.storeSelectedIndex    获取索引
command                 target              value
open            http://www.baidu.com/gaoji/preferences.html   
select              name=NR            每页显示20条
storeSelectedIndex        name=NR            aa
echo                ${aa}               
输出的是          1

9.storeSelectedLable    获取文本值
command                 target              value
open            http://www.baidu.com/gaoji/preferences.html   
select              name=NR            每页显示20条
storeSelectedLable        name=NR            aa
echo                ${aa}               
输出的是          每页显示20条

10.storeSelectedValue    获取属性值
command                 target              value
open            http://www.baidu.com/gaoji/preferences.html   
select              name=NR            每页显示20条
storeSelectedLable        name=NR            aa
echo                ${aa}               
输出的是          20

11.storeSelectOptions    获取所有文本值,通过,分隔
command                 target              value
open            http://www.baidu.com/gaoji/preferences.html   
storeSelectOptions        name=NR            aa
echo                ${aa}               
输出的是          每页显示10条,每页显示20条,每页显示50条,每页显示100条

12.storeTable        获取td的名称
这个得讲下,因为遇到比较蛋疼的事情。我找的是www.tvsou.com[/url]
<div class="v3-border">
    <table width="100%" cellspacing="1" cellpadding="0" border="0" bgcolor="#a2c4d9" align="center">
        <tbody>
            <tr class="tab-fcous-menu-2">
                <td width="12%" height="20">
                </td>
                <td width="12%" height="20">
                </td>
                <td width="13%">
                    <a target="_blank" href="http://epg.tvsou.com/programds/57_57_W3.htm">体育</a>
                </td>
                <td width="12%">
                </td>
                <td width="13%">
                </td>
                <td width="12%">
                </td>
                <td width="13%">
                </td>
                <td width="12%">
                </td>
                </tr>
                <tr class="tab-fcous-menu-2">
            </tr>
        </tbody>
    </table>
    <table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" style="margin-top: 5px;">
    </table>
</div>
这里不存在id或者name,所以我们只能通过xpath来获取,但是获取的值为/html/body/div[4]/div/div/div,而Selenium IDE支持的是//div[@class='v3-border']/table[1].0.2类型,所以我们自己要手动修改,意思是//div[@class='v3-border']/table[1]的第一行的第三个

               
command                 target              value
open            www.tvsou.com   
storeTable        //div[@class='v3-border']/table[1].0.2        aa
echo                ${aa}               
输出的是          体育


13.storeAttribute    获取属性值
<input id="TANGRAM__3__submit" class="pass-button pass-button-submit" type="submit" value="登录">

command                 target              value
open            [url]https://passport.baidu.com/v2/?login&fr=old   
storeAttribute        id=TANGRAM__3__submit@class    aa
echo                ${aa}               
输出的是          pass-button pass-button-submit


14.storeTextPresent    文中是否出现某个关键词,比如下文就是在[url]http://www.baidu.com/,寻找"安装百度卫士",找到返回true,否则返回false

command                 target              value
open            http://www.baidu.com/   
storeTextPresent    安装百度卫士                aa
echo                ${aa}               
输出的是          ture

15.storeElementPresent    源码中是否存在某一个元素
<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">

command                 target              value
open            http://www.baidu.com/   
storeElementPresent    id=kw                    aa
echo                ${aa}               
输出的是          ture


16.storeVisble        源码中为hidden,dispaly的文件,storeElementPresent显示为true,但我们还是要确定下是否存在

command                 target              value
open            http://www.baidu.com/   
storeVisble        id=kw                    aa
echo                ${aa}               
输出的是          ture


17.storeSpeed        获取时间间隔
command                 target              value
storeSpeed        speed   
echo                ${speed}               
输出的是          0



发表于 2014-2-26 23:15:24 | 显示全部楼层
大家可以自己去百度下这个,下一步 我发一个关于python的自动注册或者登陆。一个不错的东西
发表于 2014-2-26 23:18:19 | 显示全部楼层
本帖最后由 coco 于 2014-2-26 23:22 编辑

我看的是selenium的那本书,不过书里面用的是java和c#。但是selenium语言的异曲同工,java中利用的是大骆驼命名法,C#是用小骆驼命名法。其他都差不多,不过python基本类似,研究自动化蛮好玩的,声明我对python不是很懂,所以没用类
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Firefox()        #启动火狐
url="http://127.0.0.1/dz/forum.php" #输入地址
browser.get(url)        #打开网页
a=browser.find_elements_by_tag_name('form')        #获取form表单
def isList(url):        #本想写一个txt,来抓去是否网站已经注册,不过略麻烦,就简单些把
    L=set(["http://127.0.0.1/dz/forum.php"])        #搜索集合,存在,则自动登录
    if url not in L:#自动注册
        b=a[0].find_element_by_css_selector('a[href*=register]')
        b.click()
        time.sleep(10)
        browser.find_element_by_id('Q3IXLu').send_keys('daadda')
        browser.find_element_by_id('D51jh5').send_keys('123456')
        browser.find_element_by_id('Z5EW25').send_keys('123456')
        browser.find_element_by_id('Uw8Bd4').send_keys('1111111@qq.com')
        browser.find_element_by_css_selector('button[id*=register]').click()               
    else:        #自定登陆
        b=a[0].find_elements_by_tag_name('input')
        b[0].send_keys('admin')
        c=a[0].find_element_by_css_selector('input[type=password]')
        c.send_keys('admin')
        try:
            d=a[0].find_element_by_css_selector('input[type=submit]').click()                       
        except:
            d=a[0].find_element_by_css_selector('button[type=submit]').click()
                       
isList(url)

发表于 2014-2-27 00:21:49 | 显示全部楼层
coco 发表于 2014-2-26 23:18
我看的是selenium的那本书,不过书里面用的是java和c#。但是selenium语言的异曲同工,java中利用的是大骆驼 ...

你经理那么苦逼
发表于 2014-7-27 14:42:21 | 显示全部楼层

好吧,有些没看懂

代码区

GMT+8, 2019-11-23 08:05

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部