Selenium Webdriver 自动化测试开发常见问题(C#版)VS
标签:efault dia action mes odi classname esb ESS webdriver
1:Selenium中对浏览器的操作
首先生成一个Web对象
IWebDriver driver = new FirefoxDriver();
//打开指定的URL地址
driver.Navigate().GoToUrl(@"http://12.99.102.196:9080/corporbank/logon_pro.html");
//关闭浏览器
Driver.quit();
网银浏览器兼容性测试过程中,关闭浏览器后会有对话框,此问题解决方法如下:
public void logout()
{
System.Diagnostics.Process[] myProcesses;
myProcesses = System.Diagnostics.Process.GetProcessesByName("IEXPLORE");
foreach (System.Diagnostics.Process instance in myProcesses)
{
instance.Kill();
}
}
2:Selenium中执行JS 脚本
//需要将driver强制转换成JS执行器类型
((IJavaScriptExecutor) driver).ExecuteScript("js文件名");
3:Selenium中定位页面元素
driver.FindElement(By.Id("cp1_btnModify")).click();
By.ClassName(className));
By.CssSelector(selector) ;
By.Id(id);
By.LinkText(linkText);
By.Name(name);
By.PartialLinkText(linkText);
By.TagName(name);
By.Xpath(xpathExpression);
3.1根据元素id定位并操作
//向指定的文本框输入字符串500001
Driver.FindElement(By.Id("amount")).SendKeys("500001");
3.2根据元素classname定位并操作
//点击classname为指定值的按钮
Driver.FindElement(By.ClassName(“WotherDay”)).click();
3.3根据元素的linktext定位并操作
Driver.FindElement(By.LinkText(“选择账号”)).click();
3.4根据元素的Name定位并操作
Driver.FindElement(By.Name(“quality”)).perform();
3.5使用CssSelector定位并操作
string order = "#resultTable.result_table tbody tr.bg1 td.center a";
driver.FindElement (By.CssSelector(order)).click();
3.6使用Xpath定位并元素并操作
//使用多个属性定位元素
Driver.FindElement(By.XPath("//input[@id=‘submit‘ and @value=‘下一步‘]")).click();
//使用绝对路径定位元素
string path = "/html/body/div[4]/div/div/div[2]/table/tbody/tr/td/a";
Driver.FindElement(By.Xpath(path)).click();
各方法使用优先原则:
优先使用id,name,classname,link;次之使用CssSelector();最后使用Xpath();
因为Xpath()方法的性能和效率最低下。
4:Selenium中清空文本框中的默认内容
//清空文本框clear()
Driver.FindElement(By.Id("tranAmtText")).clear();
5:Selenium中在指定的文本框中输入指定的字符串
//在文本框中输入指定的字符串sendkeys()
Driver.FindElement(By.Id("tranAmtText")).SendKeys(“123456”);
6:Selenium中移动光标到指定的元素上
//移动光标到指定的元素上perform
Actions action=new Actions(driver);
action.MoveToElement(Find(By.XPath("//input[@id=‘submit‘ and @value=‘确定‘]"))).Perform();
7:Selenium中点击按钮/链接
//点击按钮/链接click()
Driver.FindElement(By.XPath("//input[@id=‘submit‘ and @value=‘下一步‘]")).click();
8:Selenium中等待页面上的元素加载完成
//等待页面元素加载完成
//默认等待100秒
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
//等待页面上ID属性值为submitButton的元素加载完成
wait.Until((d) => { return WaitForObject(By.Id("submitButton")); });
9:Selenium中模拟鼠标晃动
//模拟光标晃动movebyoffset()
Actions action = new Actions(driver);
action.MoveByOffset(2, 4);
10:Selenium中对iframe中元素的定位
5.1:切换焦点到id为固定值的iframe上
进入页面后,光标默认焦点在DefaultContent中,若想要定位到iframe 需要转换焦点
driver.SwitchTo().DefaultContent();
//切换焦点到mainFrame
driver.SwitchTo().Frame("mainFrame");
需要注意的是:切换焦点之后若想切换焦点到其他iframe上 需要先返回到defaultcontent,再切换焦点到指定的iframe上。
5.2切换焦点到id值为动态值的iframe上
有时候 页面上浮出层的id为动态值,此时需要先获取所有符合记录的iframe放置在数组中,然后遍历数组切换焦点到目标iframe上。
如下方法:
protected string bizFrameId = string.Empty;
protected string bizId = string.Empty;
//获取动态iframe的id值
protected void SetIframeId()
{
ReadOnlyCollectionSelenium Webdriver 自动化测试开发常见问题(C#版)VS
标签:efault dia action mes odi classname esb ESS webdriver
原文地址:https://www.cnblogs.com/smile1313113/p/selenium.html
评论