Iam尝试在浏览器之间切换,即点击按钮就会启动新的浏览器 正在找到句柄..问题是它无法在id,xpath,name等搜索到的新浏览器中找到对象,可以有人给我任何建议。 它也能够匹配网址。
请同样为我提供解决方案。 下面是代码。
//上一个屏幕 设置windows = driver1.getWindowHandles();
driver1.findElement(By.id("findButton")).click();
//切换新屏幕的句柄
driver1.switchTo().window("Customer Search");
driver1.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
int i = 1;
while(i<= 10){
for (String handle : driver1.getWindowHandles()) {
String myTitle = driver1.switchTo().window(handle).getTitle();
System.out.println("myTitle value : " +myTitle);
//客户搜索是新窗口标题
if(myTitle.equalsIgnoreCase("Customer Search")){
driver1.manage().window().maximize();
//如果我传递的屏幕右侧网址也匹配,我已经给了虚拟(“sshsj”)
if(driver1.getCurrentUrl().equalsIgnoreCase("sshsj"));
{
System.out.println("Url is matching");
//但无法识别新窗口中的对象。
driver1.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal");
}
答案 0 :(得分:0)
您可以使用JS打开一个新窗口,速度更快。
IJavaScriptExecutor jscript = driver as IJavaScriptExecutor;
jscript.ExecuteScript("window.open()");
然后切换窗口,使用窗口句柄:
List<string> handles = driver.WindowHandles.ToList<string>();
driver.SwitchTo().Window(handles.Last());
driver.get(url);
driver.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal");
答案 1 :(得分:0)
元素可能存在于iframe中。在这种情况下,您需要切换到该iframe,然后才能访问iframe中的任何元素。