<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    操作頁(yè)面元素WebElement—Selenium自動(dòng)化測(cè)試指南(4)

    (51Testing軟件測(cè)試網(wǎng)獲人民郵電出版社和作者授權(quán)連載本書(shū)部分章節(jié)。任何個(gè)人或單位未獲得明確的書(shū)面許可,不得對(duì)本文內(nèi)容復(fù)制、轉(zhuǎn)載或進(jìn)行鏡像,否則將追究法律責(zé)任。)

      5.5.7  XPath(xPathToFind)

      如果以上查找方法都無(wú)法定位到指定對(duì)象,那么可以按XPath進(jìn)行查找。例如,百度首頁(yè)有文本框,如圖5-35所示。

    圖5-35  百度搜索文本框

      其HTML代碼如下:

    <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">

      如要操作該文本框,則可以通過(guò)其XPath表達(dá)式“//input[@id='kw']”作為查找條件獲取該對(duì)象,找到該文本框,然后再輸入文本,例如程序清單5-27和程序清單5-28所示的代碼。

      程序清單5-27  C#代碼

    IWebDriver driver = new FirefoxDriver();
    INavigation navigation = driver.Navigate();
    navigation.GoToUrl(http://www.baidu.com);
    IWebElement baiduTextBox = driver.FindElement(By.XPath("http://input[@id='kw']"));
    baiduTextBox.SendKeys("找到文本框");

      程序清單5-28  Java代碼

    WebDriver driver = new FirefoxDriver();
    Navigation navigation = driver.navigate();
    navigation.to(http://www.baidu.com);
    WebElement baiduTextBox = driver.findElement(By.xpath("http://input[@id='kw']"));
    baiduTextBox.sendKeys("找到文本框");



     5.6  操作頁(yè)面元素WebElement

      在Selenium 1中,直接通過(guò)Selenium的各種方法來(lái)操作頁(yè)面元素,但在Selenium 2中則不同,需要通過(guò)上5.5講到的By對(duì)象先定位到對(duì)應(yīng)的頁(yè)面元素,然后調(diào)用這個(gè)頁(yè)面元素的相關(guān)方法來(lái)進(jìn)行操作。

      可以通過(guò)WebDriver的FindElement()方法獲得WebElement的對(duì)象實(shí)例。

      在獲取頁(yè)面元素后,就可以對(duì)該頁(yè)面元素進(jìn)行各種操作了。

      5.6.1  Click()

      Click()方法用于執(zhí)行單擊元素的操作。例如,百度首頁(yè)上有“登錄”超級(jí)鏈接,如圖5-36所示。

      圖5-36  登錄按鈕

      要單擊“登錄”超級(jí)鏈接,代碼如程序清單5-29或程序清單5-30所示/

      程序清單5-29  C#代碼

    IWebDriver driver = new FirefoxDriver();
    INavigation navigation = driver.Navigate();
    navigation.GoToUrl(http://www.baidu.com);
    IWebElement baiduLogin = driver.FindElement(By.LinkText("登錄"));
    baiduLogin.Click();

      程序清單5-30  Java代碼

    WebDriver driver = new FirefoxDriver();
    Navigation navigation = driver.navigate();
    navigation.to(http://www.baidu.com);
    WebElement baiduLogin = driver.findElement(By.LinkText("登錄"));
    baiduLogin.click();

      在執(zhí)行“WebElement baiduLogin = driver.findElement(By.LinkText("登錄"));”時(shí),程序先通過(guò)“driver.findElement(By.LinkText("登錄"));”找到該按鈕,然后將其賦值給變量baiduLogin。baiduLogin就是獲取到的頁(yè)面元素,它代表“登錄”按鈕,獲取到它之后就可以對(duì)它進(jìn)行各種操作了,例如單擊操作baiduLogin.click()。

      注意,在Selenium 2中沒(méi)有Check/UnCheck這類(lèi)方法來(lái)勾選或取消復(fù)選框和單選框,所以只能通過(guò)Click方法來(lái)進(jìn)行勾選或取消勾選。例如,百度貼吧的頁(yè)面上有“記住我的登錄狀態(tài)”復(fù)選框如圖5-37所示。





    只能使用Click()方法對(duì)其進(jìn)行勾選,如程序清單5-31和程序清單5-32所示。

      程序清單5-31  C#代碼

    IWebDriver driver = new FirefoxDriver();
    INavigation navigation = driver.Navigate();
    navigation.GoToUrl(http://tieba.baidu.com/index.html);
    IWebElement rememberMe = driver.FindElement(By.Id("pass_loginLite_input_isMem0"));
    rememberMe.Click();

      程序清單5-32  Java代碼

    WebDriver driver = new FirefoxDriver();
    Navigation navigation = driver.navigate();
    navigation.to(http://tieba.baidu.com/index.html);
    WebElement rememberMe = driver.findElement(By.id("pass_loginLite_input_isMem0"));
    rememberMe.click();

      對(duì)于Selenium 2來(lái)說(shuō),因?yàn)轫?yè)面元素沒(méi)有Select方法,所以也只能用Click模擬實(shí)現(xiàn)對(duì)下拉列表框的選擇。以百度貼吧搜索為例,如圖5-38所示,假設(shè)要在排序方式下拉列表框中選擇“按相關(guān)性進(jìn)行排序”。

      其HTML代碼如圖5-39所示。

      可以編寫(xiě)代碼即可選擇“按相關(guān)性進(jìn)行排序”,如程序清單5-33和程序清單5-34所示。

      圖5-38  搜索排序下拉列表框

      圖5-39  下拉列表框的HTML代碼


    5.6.3  Clear()

      Clear()方法用于清空input元素的值。例如,百度首頁(yè)有搜索文本框,如圖5-42所示。

      圖5-42  百度首頁(yè)搜索文本框

      可以先給文本框填入內(nèi)容,然后使用Clear()將其清除,清除前先使用Thread.Sleep(3000)等待3秒,以便于觀察),代碼如程序清單5-37和程序清單5-38所示。

      程序清單5-37  C#代碼

    IWebDriver driver = new FirefoxDriver();
    INavigation navigation = driver.Navigate();
    navigation.GoToUrl(http://www.baidu.com);
    IWebElement baiduTextBox = driver.FindElement(By.XPath("http://input[@id='kw']"));
    baiduTextBox.SendKeys("找到文本框");
    System.Threading.Thread.Sleep(3000);
    baiduTextBox.Clear();

      程序清單5-38  Java代碼

    WebDriver driver = new FirefoxDriver();
    Navigation navigation = driver.navigate();
    navigation.to("http://www.baidu.com");
    WebElement baiduTextBox = driver.findElement(By.id("kw"));
    baiduTextBox.sendKeys("找到文本框");
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    baiduTextBox.clear();

      5.6.4  Submit()

      Submit()方法用于對(duì)指定元素所在的form元素進(jìn)行提交操作。

      例如,百度貼吧的登錄界面如圖5-43所示。

      圖5-43  百度貼吧登錄界面

      用Firebug查看它的HTML,如圖5-44所示。

      圖5-44  百度貼吧登錄HTML代碼

      可以看到,它由一個(gè)form組成,只要對(duì)這個(gè)from中的任何元素使用Submit()方法,都會(huì)提交這個(gè)form。

    本文選自《Selenium自動(dòng)化測(cè)試指南》第五章節(jié),本站經(jīng)人民郵電出版社和作者的授權(quán),近期將進(jìn)行部分章節(jié)的連載,敬請(qǐng)期待!

    版權(quán)聲明:51Testing軟件測(cè)試網(wǎng)獲人民郵電出版社和作者授權(quán)連載本書(shū)部分章節(jié)。

    任何個(gè)人或單位未獲得明確的書(shū)面許可,不得對(duì)本文內(nèi)容復(fù)制、轉(zhuǎn)載或進(jìn)行鏡像,否則將追究法律責(zé)任。

    相關(guān)文章:

    查找條件對(duì)象By—Selenium自動(dòng)化測(cè)試指南(3)

     

    posted on 2013-08-30 09:28 順其自然EVO 閱讀(11722) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)

    評(píng)論

    # re: 操作頁(yè)面元素WebElement—Selenium自動(dòng)化測(cè)試指南(4)[未登錄](méi) 2014-06-30 14:39 Blue

    你好,我在執(zhí)行baiduTextBox.sendKeys("找到文本框");時(shí),會(huì)報(bào)Element is not currently visible and so may not be interacted with 求教,一直未解決


      回復(fù)  更多評(píng)論   

    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 中文无码日韩欧免费视频| 国产va免费精品观看精品| 亚洲国产综合自在线另类| 成人免费一区二区三区在线观看| 曰批全过程免费视频免费看 | 国内外成人免费视频| 中文字幕在线观看免费| 亚洲国色天香视频| 亚洲天堂中文字幕在线| 日韩免费一区二区三区在线播放| 亚洲av成人一区二区三区在线播放| 亚洲色精品vr一区二区三区| 97无码免费人妻超级碰碰夜夜| 国产99久久亚洲综合精品| 亚洲精品国产肉丝袜久久| 免费一级黄色毛片| 色老头永久免费网站| 香蕉国产在线观看免费| 亚洲最大的视频网站| 亚洲乱码无码永久不卡在线| 免费毛片在线播放| 3d成人免费动漫在线观看| 黄色网址免费在线观看| 亚洲狠狠婷婷综合久久| 久久精品国产亚洲av日韩| 久久伊人亚洲AV无码网站| 国产色爽免费视频| 在线a级毛片免费视频| 青青操免费在线观看| 黄色一级毛片免费| 亚洲女子高潮不断爆白浆| 亚洲的天堂av无码| 亚洲AV无码专区电影在线观看| 免费一看一级毛片| 在线观看免费宅男视频| 午夜视频在线免费观看| 国产免费人成视频在线播放播| 亚洲精品国产suv一区88| 亚洲一区在线视频| 亚洲成在人线电影天堂色| 香蕉蕉亚亚洲aav综合|