C# Selenium Edge 驱动下的常见用法
using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Support.UI;
//添加缩放属性 将浏览器缩放设为100%
EdgeOptions options=new EdgeOptions();
options.AddArgument("force-device-scale-factor=1");
//不需添加额外属性 options可不写 直接 var driver = new EdgeDriver()
using (var driver = new EdgeDriver(options))
{
//打开指定Url路径
driver.Navigate().GoToUrl("https://test.com");
//将浏览器全屏化
driver.Manage().Window.Maximize();
try
{
/可添加等待时间 等待网页加载 直至某元素出现
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
//等待直到标题出现
//wait.Until(d=>d.Title.Contains("Example Domain"));
//等待特定元素出现
//等待Test按钮出现
wait.Until(d => d.FindElement(By.Id("test-button")).Displayed);
//查找按钮元素并点击
IWebElement buttonElement = driver.FindElement(By.Id("test-button"));
buttonElement.Click();
//网页跳转后 等待网页加载
System.Threading.Thread.Sleep(1000);
//直到某元素出现 by -name
wait.Until(d => d.FindElement(By.Name("username")).Displayed);
//by -css
//wait.Until(d => d.FindElement(By.CssSelector("input[class='test']")).Displayed);
// wait.Until(d => d.FindElement(By.XPath("//input[@name='test 1 color 1']")).Displayed);
//获取class包含test的元素
IWebElement input_name = driver.FindElement(By.CssSelector("input[class*='test']"));
//往input框赋值
input_name.SendKeys("test");
//不好获取ID、Name、Class时,可采用XPath方式
wait.Until(d => d.FindElement(By.XPath("//button[@type='submit']")).Displayed);
//wait.Until(d => d.FindElement(By.CssSelector("input[type='submit']")).Displayed);
//wait.Until(d => d.FindElement(By.ClassName("test")));
buttonElement = driver.FindElement(By.XPath("//button[@type='submit']"));
buttonElement.Click();
//Radiobutton 的获取
//wait.Until(d => d.FindElement(By.XPath("//input[@type='type1' and @name='name' and @value='1']")).Displayed);
//IWebElement radio_name = driver.FindElement(By.XPath("//input[@type='type' and @name='name' and @value='1']"));
// radio_name.Click();
//By Class 获取按钮
wait.Until(d => d.FindElement(By.ClassName("test-button")).Displayed);
buttonElement = driver.FindElement(By.ClassName("test-button"));
buttonElement.Click();
//By XPath 获取a 、i 标签
//wait.Until(d => d.FindElement(By.XPath("//i[@class='tets test-color-green test-status-ok-core']")).Displayed);
//wait.Until(d => d.FindElement(By.XPath("//a[@Test-click='redirectToselectedTest(TestStatusSystem.id)']")).Displayed);
IWebElement test_div = driver.FindElement(By.Id("test_div"));
//获取test_div中的所有div
//var div_count = test_div.FindElements(By.TagName("div"));
//只获取test_div里最外层div
var div_count = sys_div.FindElements(By.XPath("./div"));
//获取Strong元素的外层a标签方法
wait.Until(d => d.FindElement(By.XPath("//strong[@id='test']/parent::a")).Displayed);
buttonElement = driver.FindElement(By.XPath("//strong[@id='test']/parent::a"));
buttonElement.Click();
//执行JavaScript脚本来滚动页面
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("window.scrollTo(0,document.body.scrollHeight)");
//下拉到指定标签位置 如: label translate="test"
IWebElement targetElement = driver.FindElement(By.XPath("//label[@test']"));
js.ExecuteScript("arguments[0].scrollIntoView(true);", targetElement);
//勾选CheckBox
//wait.Until(d => d.FindElement(By.Id("cb_ck")).Displayed);
//IWebElement checkbox = driver.FindElement(By.Id("cb_ck"));
//if (checkbox.Selected == false)
//{
// checkbox.Click();
//}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}