当前位置: 首页 > 知识库问答 >
问题:

无法使用硒网络驱动程序切换选项卡

冯宏放
2023-03-14

我正在尝试切换选项卡并通过导航到url进行操作'http://toolsqa.com/'然后转到演示站点--

使用的不同代码:

代码1:

	public void switchWindow(String originalWindowKey){
		
		System.out.println("Ori"+originalWindowKey);
		Set<String> multipleWindowHandles = driver.getWindowHandles();
		System.out.println(multipleWindowHandles);
		System.out.println("Entry1");
		String newWindowKey = "";
		System.out.println("Entry2");
		for (String windowKeys : multipleWindowHandles) {
				System.out.println("1"+windowKeys);
				if(windowKeys.equals(originalWindowKey) == false){
					System.out.println("Success");
					newWindowKey = windowKeys;	
				}		
		}
		
		driver.switchTo().window(newWindowKey);	
	}

代码2:

	public void sampleSwitch(){
		
		driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
		driver.switchTo().defaultContent();
		
	}

代码3:

	public void oneSwitch(){
		driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL, Keys.PAGE_DOWN);
	}

以上是我用来切换标签的方法,但是还没有成功。请在这方面帮助我。

共有2个答案

步致远
2023-03-14
Set<String> handles = driver.getWindowHandles();
driver.switchTo().window(handles.toArray(new String[1])[1]);

System.out.println("Handles - " + handles.size());
System.out.println("Title - " + driver.getTitle());     
System.out.println("Menu text - " + driver.findElement(By.id("menu-main-menu")).getText());



RESULT -- 
Handles - 2
Title - ONLINE STORE | Toolsqa Dummy Test site
Menu text - Home
Product Category
All Product
益绯辞
2023-03-14

通过使用JavaScript更改目标attribute,您可以轻松避免此问题:

import org.openqa.selenium.JavascriptExecutor;

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.querySelector('a[href="http://store.demoqa.com"]').target='_self';");

这将强制< code>webdriver在同一选项卡中打开新的< code>URL

 类似资料:
  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic

  • 我用XPath写了一个单选按钮的代码,但在代码执行过程中没有点击单选按钮。 我的代码是: 请帮助如何按钮选择特定的单选按钮,选择后它移动到另一个单选按钮。 提前感谢。

  • 下拉列表的超文本标记语言代码 通过单击spans下拉列表将显示。下拉值在li内 如何选择li中提到的选项。我们只有span ID。

  • 正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现

  • 我正在尝试使用下面的代码行在selenium中打开新选项卡 但是标签没有打开。谁能说出这个命令有什么问题?也可以解释一下此命令中使用的?我尝试搜索但没有正确的答案 下面的完成不起作用。它在chrome中的同一选项卡中打开gmail和堆栈溢出,而不是打开新选项卡

  • 我试图启动firefox浏览器,并使用selenium webdriver打开一个网页示例< code>google.com。我成功地启动了浏览器,但启动网页时出现了一些问题。我得到的错误是 线程“main”中的异常 org . open QA . selenium . remote . unreachablebrowserexception:无法启动新会话。 可能的原因是远程服务器地址无效或浏览