我已经开发了这段代码,用于将所有搜索结果打开到新标签中:
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL, Keys.RETURN);
results.get(i).sendKeys(selectLinkOpeninNewTab);
for (int i = 0; i < results.size(); i++)
{
ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
driver.close();
driver.switchTo().window(tabs2.get(0));
}
我想要的是当我打开所有带有搜索结果的选项卡时,我想在所有选项卡之间切换并延迟2秒。
我该如何实施?
试试这个代码,
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class TabSwitching {
public static void main(String[] args) throws InterruptedException, AWTException {
System.setProperty("webdriver.chrome.driver", "D:/WorkSpace/Driver/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com/xhtml");
Thread.sleep(5000);
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("Software testing");
searchBox.submit();
System.out.println("Current Url: " + driver.getCurrentUrl());
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("h3.r a")));
List<WebElement> results = driver.findElements(By.xpath("//h3[@class='r']/a"));
for (WebElement ele : results) {
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL, Keys.RETURN);
ele.sendKeys(selectLinkOpeninNewTab);
}
Thread.sleep(5000);
ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
System.out.println(tabs2.size());
for (int i = tabs2.size()-1; i>=0; i--) {
Thread.sleep(2000);
driver.switchTo().window(tabs2.get(i));
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_CONTROL);
System.out.println(driver.getTitle() + "i: " + i);
driver.close();
}
}
}
我正在使用Selenium和Java,我正在使用这段代码在Mozilla中的选项卡之间切换,但它打开了一个新窗口而不是新选项卡。如何解决这个问题,或者有没有另一种在选项卡之间切换的方法?
我正在使用: Chrome55.0.2 Selenium WebDRiver 3.0.1与ChromeDRiver C#4.6.1(VS2015社区版) 我正在编写打开Chrome的自动化代码,打开一个选项卡,并导航到一个主页面URL。这个主页有我解析生成二级页面URL的信息。我的问题是,我不能编写在二级页面加载后切换回主页选项卡的代码,也不能编写从不离开主页的代码。我将解释我所追求的两个选择:
这是我写的代码,以打开一个新标签在已经打开Chrome但它是重定向到第二个url在现有的标签只有。 我想打开一个新选项卡并加载“www.mailinator.com”的url 有人能帮我吗?
问题内容: 我们开发了一个Chrome扩展程序,我想用Selenium测试我们的扩展程序。我创建了一个测试,但是问题是我们的扩展程序在安装后会打开一个新选项卡,我认为我从另一个选项卡中得到了例外。是否可以切换到我正在测试的活动标签?另一个选择是先禁用扩展名,然后登录到我们的网站,然后再启用该扩展名。可能吗?这是我的代码: 测试失败,原因是,因为在新选项卡(由扩展名打开)中,“登录”不可见(我认为仅
问题内容: 我们正在编写包含4个标签的应用程序:地图,人物,地点,事件。应用程序中的人物,地点和事件在地图上显示为图标。默认情况下,“人员”,“位置”和“事件”选项卡分别显示一个自定义呈现的列表视图,分别显示所有“人员”,“位置”和“事件”。 替代文字http://web6.twitpic.com/img/37202700-f92052dc474b74e1760edda1c47f6940.4adc
当我尝试从一个活动()切换到另一个活动()时出错。我做错了什么?我的代码没有错误。 以下是日志猫的内容: E/AndroidRuntime(787): FATAL EXCEPTION: main E/AndroidRuntime(787): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.intellig