您的位置:首页 > 其它

Selenium WebDriver 学习笔记

2014-12-09 15:36 423 查看
1. 打开VS2012

2. 新建工程(单元测试工程或控制台程序都可以, 看需求)

3. 工具->NuGet程序包管理器->程序包管理器控制台

4. 输入"Install-Package Selenium.WebDriver"安装程序包

5. 输入"Install-Package Selenium.WebDriverBackedSelenium"安装程序包

6. 输入"Install-Package Selenium.Support"安装程序包

一些方法的意义(主观感觉, 文档有限(并且国内访问不了), 一天左右的时间的接触):

using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Interactions.Internal;
using System.Drawing;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium.Chrome;

namespace BosSeleniumDriver
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver;
string baseURL;
driver = new FirefoxDriver();
//driver = new ChromeDriver();
//baseURL = "http://localhost:49912";
baseURL = "http://172.16.8.7:4399";
try
{
//首页
driver.Navigate().GoToUrl(baseURL + "/");

//最大化窗口
driver.Manage().Window.Maximize();

//线程等待1秒
System.Threading.Thread.Sleep(1000);

//登陆
driver.FindElement(By.Id("Login")).Click();
driver.FindElement(By.Id("poploginId")).SendKeys("xachary");
driver.FindElement(By.Id("password")).SendKeys("home890619");
driver.FindElement(By.Id("loginbtn")).Click();

//线程等待1秒
System.Threading.Thread.Sleep(1000);

Actions actions = new Actions(driver);
//移动鼠标让导航出现
IWebElement nav = driver.FindElements(By.CssSelector(".has_sub"))[0];
actions.MoveToElement(nav);
actions.MoveByOffset(0, 50);
actions.Perform();

//等待导航出现, 100毫秒
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(10000 * 100));

//点击家庭药箱链接
actions.Click();
actions.Perform();

//选择第一个商品
driver.FindElement(By.CssSelector("li.first > a > img")).Click();

//跳转到新页面
driver.SwitchTo().Window(driver.WindowHandles.Last());

//购买
driver.FindElement(By.LinkText("立即购买")).Click();

//等待获取收货地址
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 3));

//如果没有地址
if (driver.FindElements(By.CssSelector(".address-radio.fl")).Count == 0)
{
//级联下拉框
new SelectElement(driver.FindElement(By.Id("sltProvince"))).SelectByText("广东省");

driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 3));

new SelectElement(driver.FindElement(By.Id("sltCity"))).SelectByText("珠海市");

driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 3));

new SelectElement(driver.FindElement(By.Id("sltArea"))).SelectByText("香洲区");

//填写表单
driver.FindElement(By.Id("txtAddress")).Clear();
driver.FindElement(By.Id("txtAddress")).SendKeys("测试地址");
driver.FindElement(By.Id("txtReceive")).Clear();
driver.FindElement(By.Id("txtReceive")).SendKeys("测试收货人");
driver.FindElement(By.Id("txtTelephone")).Clear();
driver.FindElement(By.Id("txtTelephone")).SendKeys("18507567676");
//提交表单
driver.FindElement(By.Id("btnUpdateAddr")).Click();
}
driver.FindElement(By.Name("rdoAddr")).Click();

//等待商品信息出现
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 3));
wait.Until<IWebElement>((o) =>
{
return driver.FindElement(By.CssSelector(".cart_list_td tr"));
});

//等待提交订单按钮生效
System.Threading.Thread.Sleep(2000);
//提交订单
driver.FindElement(By.LinkText("提交订单")).Click();

//选择工行支付
WebDriverWait wait2 = new WebDriverWait(driver, new TimeSpan(0, 0, 5));
wait2.Until<IWebElement>((o) =>
{
return driver.FindElement(By.Id("gh"));
}).Click();
//支付
driver.FindElement(By.Id("btn_pay")).Click();
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 2));
//关掉支付弹出页
driver.SwitchTo().Window(driver.WindowHandles.Last());
driver.Close();
//回到支付页面
driver.SwitchTo().Window(driver.WindowHandles.Last());
driver.FindElement(By.LinkText("付款遇到问题")).Click();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("结束");
System.Threading.Thread.Sleep(3000);
//Console.ReadLine();
driver.Quit();
}
}
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: