Selenium WebDriver 弹窗,Frame, 元素处理

driver.navigate().to("http://www.google.com");


多窗体的情况使用driver.switchTo().window()
这是一个Sample:
Set<String> handles = driver.getWindowHandles();
handles.remove(driver.getWindowHandle());//去掉当前句柄
driver.switchTo().window(handles.iterator().next());

// 1 - 保存主窗口句柄
IWebDriver driver = new FirefoxDriver();
string mainWindowHandle = driver.CurrentWindowHandle;
// 2 - 标识弹出窗口
IWebDriver popup = null;
foreach (string winHandle in driver.WindowHandles)
{
popup = driver.SwitchTo().Window(winHandle);
if (popup.Title.Equals("弹出窗口的标题", StringComparison.InvariantCultureIgnoreCase))
break;
}
// 3 - 执行弹出窗口内的任何操作
popup.findElement(By.name("TextBoxName")).sendKeys("Enter TEXT");
popup.findElement(By.name("SaveButton")).click();
...
// 4 - 执行弹出窗口内的任何操作后关闭弹出窗口
// 方式一:点击弹出窗口内部元素(如<关闭>按钮)触发弹出窗口自己关闭
// popup.findElement(By.name("CloseButton")).click();
// 方式二:调用弹出窗口的WebDriver的Close方法
popup.Close();
// 方式一、二不能同时使用,否则测试抛出无法找到窗口异常(已经关闭)
// 5 - 返回主窗口
driver.SwitchTo().Window(mainWindowHandle);

注释:以上代码不能从Selenium IDE录制和导出到C#(WebDriver)获取



包含iframe的情况使用driver.switchTo().frame()
Sample貌似和这个差不多。。。明天交流回来把这个补上。。

好麻烦啊。。

Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找。

假设页面写成这样:

<input type="text" name="passwd"id="passwd-id" />

 

那么可以这样找到页面的元素:

通过id查找:

WebElement element = driver.findElement(By.id("passwd-id"));

或通过name查找:

WebElement element = driver.findElement(By.name("passwd"));

或通过xpath查找:

WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']"));





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值