美文网首页
selenium---多表单切换

selenium---多表单切换

作者: 小胖5920 | 来源:发表于2019-06-14 17:27 被阅读0次

1、frame切换
针对frame嵌套内的页面上元素,可以通过switch_to_frame()方法切换
//为了切换到frame
WebElement frame =webDriver.findElement(By.xpath("//*[@id="pf-page"]/div/div[2]/div[1]/div/iframe"));
webDriver.switchTo().frame(frame);

//切换回frame
webDriver.switchTo().defaultContent();

2、多窗口切换
以下代码是一个多窗口切换的例子,目前也是没咋看明白的 先写出来,方便以后查看研究或者使用
目前只可以进行两个窗口进行切换,首先记录下当前窗口的句柄(我也不知道句柄是啥意思),然后在打开一个页面,获取所有的句柄,用所有的句柄进行判断,如果和第一个句柄不相等的话,就切换到进行到第二个句柄中;切换回第一个句柄,还是进行判断,如果全部句柄中等于第一个句柄,就切换句柄;大概就是这个意思吧

getWindowHandle() 获取当前窗口句柄
getWindowHandles() 返回所有窗口的句柄
switchTo().window() 切换不同的句柄

public class baidu {
public static void main(String[] args) throws InterruptedException {
System.out.println("开始执行代码");
System.setProperty("webdriver.chrome.driver", "C:\app\chromedriver_win32\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
webDriver.get("http://www.baidu.com");
Thread.sleep(3000);
String handle = webDriver.getWindowHandle();
System.out.println(handle);
webDriver.findElement(By.linkText("登录")).click();;
Thread.sleep(3000);
webDriver.findElement(By.linkText("立即注册")).click();;
Set<String> handles = webDriver.getWindowHandles();
for(String handle1 :handles) {
if(handle1.equals(handle)==false) {
webDriver.switchTo().window(handle1);
System.out.println("现在是注册页面了");
Thread.sleep(3000);
webDriver.findElement(By.name("userName")).clear();
webDriver.findElement(By.name("userName")).sendKeys("nameuser");
// webDriver.findElement(By.name("account")).sendKeys("password");
Thread.sleep(3000);
webDriver.close();
}
}
//判断是否为百度首页,并操作首页上的元素
for(String handle2 : handles) {
if(handle2.equals(handle)) {

            webDriver.switchTo().window(handle2);
            Thread.sleep(3000);
            webDriver.findElement(By.className("close-btn")).click();
            System.out.println("是百度首页了");
            webDriver.findElement(By.id("kw")).sendKeys("webdriver使用方法");
            Thread.sleep(3000);
        }
    }
    Thread.sleep(3000);
    webDriver.close();
    System.out.println("写完了哈");
}

}

相关文章

  • selenium---多表单切换

    1、frame切换针对frame嵌套内的页面上元素,可以通过switch_to_frame()方法切换//为了切换...

  • 多表单切换

    """ 多表单切换 通过switch_to.frame()方法切换表单 """ from timeimport s...

  • iframe表单切换

    1.web应用常用到iframe/frame,这些元素无法定位的情况下,我们需要先定位到表单,再定位元素,通过的方...

  • 4.9)多表单(frame/iframe)切换

    四、多表单切换 关键字:1、页面出现frame/iframe表单中 嵌套 页面【页面中嵌套页面】

  • js 判断点击位置

    使用场景举例:场景:用户在页面a填写表单后切换至页面b,此时表单内容并未保存存在问题:表单可能是填写比较繁琐的内容...

  • 表单切换 数据保存

    想要点击不同的tab切换提交信息,然后点击回到对应的tab是保存记录 然后在切换tab的时候 click事件中 ...

  • Error: [vee-validate] Validating

    1、背景 使用表单验证时,如果有多个模块需要切换,每个模块下的元素都使用了validate进行验证,模块之间切换时...

  • Antd-vue 表单动态修改错误提示语

    Antd-vue Form表单在表单出现错误提示语后,动态切换多语言导致提示语不能动态更新为相应的语言! Form...

  • layui单选框radio使用form.render() 更新渲

    使用layui做表单处理的时候需要多次切换radio的选中项,使用attr("checked","checked"...

  • selenium---滚动

    webdriver提供了executeScript()方法 ((JavascriptExecutor)webDri...

网友评论

      本文标题:selenium---多表单切换

      本文链接:https://www.haomeiwen.com/subject/vvkpfctx.html