zoukankan      html  css  js  c++  java
  • Selenium

    今天突然想了解下Selenium。虽然很久以前,有特意学过Selenium,也用C#写入测试样例,但由于那时什么都没有记录下来,之前积累的经验为0了。以后对自己做过的项目,学过的技术,过一段时间后,要进行总结。

    自己写的 StartSelenium.bat 脚本

    java -jar "D:Selemiumselenium-server-standalone-2.28.0.jar" -trustAllSSLCertificates


    自己写的测试样例:

    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading;
    using NUnit.Framework;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Firefox;
    using OpenQA.Selenium.Support.UI;
    
    namespace SeleniumTests
    {
        [TestFixture]
        public class Login
        {
            private IWebDriver driver;
            private StringBuilder verificationErrors;
            private string baseURL;
            private bool acceptNextAlert = true;
            
            [SetUp]
            public void SetupTest()
            {
                driver = new FirefoxDriver();
                baseURL = "https://*/login.php";
                verificationErrors = new StringBuilder();
            }
            
            [TearDown]
            public void TeardownTest()
            {
                try
                {
                    driver.Quit();
                }
                catch (Exception)
                {
                    // Ignore errors if unable to close the browser
                }
                Assert.AreEqual("", verificationErrors.ToString());
            }
            
            [Test]
            public void TheLoginTest()
            {
                driver.Navigate().GoToUrl(baseURL + "/login.php?action=logout");
                driver.FindElement(By.Id("username")).Clear();
                driver.FindElement(By.Id("username")).SendKeys("***");
                driver.FindElement(By.Id("password")).Clear();
                driver.FindElement(By.Id("password")).SendKeys("***");
                driver.FindElement(By.Name("Per_sel_bu1")).Click();
                driver.FindElement(By.LinkText("IDC管理")).Click();
                // ERROR: Caught exception [ERROR: Unsupported command [selectFrame | if_sidebar | ]]
                driver.FindElement(By.LinkText("排班管理")).Click();
                driver.FindElement(By.LinkText("设备管理")).Click();
            }
            private bool IsElementPresent(By by)
            {
                try
                {
                    driver.FindElement(by);
                    return true;
                }
                catch (NoSuchElementException)
                {
                    return false;
                }
            }
            
            private string CloseAlertAndGetItsText() {
                try {
                    IAlert alert = driver.SwitchTo().Alert();
                    if (acceptNextAlert) {
                        alert.Accept();
                    } else {
                        alert.Dismiss();
                    }
                    return alert.Text;
                } finally {
                    acceptNextAlert = true;
                }
            }
        }
    }

    看到里面有个方法:CloseAlertAndGetItsText,应该是关闭浏览的 alert ,并获取 alert 里面的文本。虽然Greasemonkey也可以实现部分Selenium的功能,但从这个函数看来,Selenium比Greasemonkey强多了。

    Selenium IDE 比较简单,能够录制视频。

  • 相关阅读:
    JS中数组去除重复的方法
    ember.js里的实用方法
    Ember入门指南——教程目录
    如何解决问题?
    Web前端开发工程师基本要求
    (转)轻松学习JavaScript三:JavaScript与HTML的结合
    (转)JavaScript二:JavaScript语言的基本语法要求
    HTML的checkbox和radio的美化
    C#串口通信—向串口发送数据,同步接收返回数据
    C#生成验证码
  • 原文地址:https://www.cnblogs.com/chy1000/p/5485717.html
Copyright © 2011-2022 走看看