GVKun编程网logo

如何使用Java处理Selenium WebDriver中的新窗口?(java selenium切换到新窗口)

10

最近很多小伙伴都在问如何使用Java处理SeleniumWebDriver中的新窗口?和javaselenium切换到新窗口这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展java

最近很多小伙伴都在问如何使用Java处理Selenium WebDriver中的新窗口?java selenium切换到新窗口这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展java – 如何点击Selenium WebDriver中的隐藏元素?、Selenium Webdriver选择新窗口C#、selenium-webdriver – 如何使用webdriver中的css选择器按值定位元素?、selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接等相关知识,下面开始了哦!

本文目录一览:

如何使用Java处理Selenium WebDriver中的新窗口?(java selenium切换到新窗口)

如何使用Java处理Selenium WebDriver中的新窗口?(java selenium切换到新窗口)

这是我的代码:

driver.findElement(By.id("ImageButton5")).click();//Thread.sleep(3000);String winHandleBefore = driver.getWindowHandle();driver.switchTo().window(winHandleBefore);driver.findElement(By.id("txtEnterCptCode")).sendKeys("99219");

现在我有下一个错误:

线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到ID ==
txtEnterCptCode的元素(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:404毫秒。

有任何想法吗?

答案1

小编典典

看来您实际上并没有切换到任何新窗口。您应该获得原始窗口的窗口句柄,将其保存,然后获取新窗口的窗口句柄并切换到该窗口。完成新窗口的操作后,您需要将其关闭,然后切换回原始窗口句柄。请参阅下面的示例:

String parentHandle = driver.getWindowHandle(); // get the current window handledriver.findElement(By.xpath("//*[@id=''someXpath'']")).click(); // click some link that opens a new windowfor (String winHandle : driver.getWindowHandles()) {    driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that''s your newly opened window)}//code to do something on new windowdriver.close(); // close newly opened window when done with itdriver.switchTo().window(parentHandle); // switch back to the original window

java – 如何点击Selenium WebDriver中的隐藏元素?

java – 如何点击Selenium WebDriver中的隐藏元素?

我有一个网格显示一些记录.当我点击一个记录并检查该元素时,显示它被隐藏,但它在网格中可见.

我的HTML是:

<a href="http://192.168.1.6/eprint_prod_3.8/settings/othercost_add.aspx?type=edit&id=805" title="Plastic Spiral Bind"
<div> Plastic Spiral Bind </div>
</a>

上述代码在检查时隐藏,但在网格中可见.

硒代码:

driver.findElement(By.partialLinkText("Plastic Spiral Bind")).click();

解决方法

首先将元素存储在对象中,让我们说元素,然后写下面的代码来点击那个隐藏的元素:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();",element);

Selenium Webdriver选择新窗口C#

Selenium Webdriver选择新窗口C#

试图在C#中使用Selenium WebDriver编写一些测试用例,但有一个我不确定如何解决的方案

用户场景是在表中搜索患者,选择患者,然后打开一个新窗口,然后在该窗口上声明各种项目

我的问题是我无法选择新窗口来声明任何内容,它不是弹出窗口,这是一个全新的浏览器窗口,但是没有窗口标题/名称来标识它,我将如何将驱动程序焦点切换到此窗口?

提前致谢

selenium-webdriver – 如何使用webdriver中的css选择器按值定位元素?

selenium-webdriver – 如何使用webdriver中的css选择器按值定位元素?

对于以下元素,如何使用css选择器通过td的值找到它?在这种情况下,它是“独特的文本”

<tdcolspan="3">
   unique text
</td>

解决方法

你可以使用这样的东西,

使用CSS Selector,

By.cssSelector("td[][value='unique text']");

有关使用css选择器的更多信息,请参见See here

selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接

selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接

我有10个不同的页面包含不同的链接.如何点击所有链接?

条件是:
i)我不知道有多少链接
ii)我想计算并点击每个链接

请建议我使用Selenium WebDriver脚本.

解决方法

捕获并导航网页上的所有链接

迭代器和高级for循环可以做类似的工作;但是,循环内页面导航的不一致性可以使用数组概念来解决.

private static String[] links = null;
private static int linksCount = 0;

driver.get("www.xyz.com");
List<WebElement> linksize = driver.findElements(By.tagName("a")); 
linksCount = linksize.size();
System.out.println("Total no of links Available: "+linksCount);
links= new String[linksCount];
System.out.println("List of links Available: ");  
// print all the links from webpage 
for(int i=0;i<linksCount;i++)
{
links[i] = linksize.get(i).getAttribute("href");
System.out.println(all_links_webpage.get(i).getAttribute("href"));
} 
// navigate to each Link on the webpage
for(int i=0;i<linksCount;i++)
{
driver.navigate().to(links[i]);
Thread.sleep(3000);
}

1 |捕获特定帧| class | id下的所有链接并逐个导航

driver.get("www.xyz.com");  
WebElement element = driver.findElement(By.id(Value));
List<WebElement> elements = element.findElements(By.tagName("a"));
int sizeOfAllLinks = elements.size();
System.out.println(sizeOfAllLinks);
for(int i=0; i<sizeOfAllLinks ;i++)
{
System.out.println(elements.get(i).getAttribute("href"));
}   
for (int index=0; index<sizeOfAllLinks; index++ ) {
getElementWithIndex(By.tagName("a"),index).click();
driver.navigate().back();
}

public WebElement getElementWithIndex(By by,int index) {
WebElement element = driver.findElement(By.id(Value));
List<WebElement> elements = element.findElements(By.tagName("a")); 
return elements.get(index);
}

2 |捕获所有链接[替代方法]

Java的

driver.get(baseUrl + "https://www.google.co.in");
List<WebElement> all_links_webpage = driver.findElements(By.tagName("a")); 
System.out.println("Total no of links Available: " + all_links_webpage.size());
int k = all_links_webpage.size();
System.out.println("List of links Available: ");
for(int i=0;i<k;i++)
{
if(all_links_webpage.get(i).getAttribute("href").contains("google"))
{
String link = all_links_webpage.get(i).getAttribute("href");
System.out.println(link);
}   
}

Python

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.google.co.in/")
list_links = driver.find_elements_by_tag_name('a')

for i in list_links:
        print i.get_attribute('href')

driver.quit()

今天关于如何使用Java处理Selenium WebDriver中的新窗口?java selenium切换到新窗口的分享就到这里,希望大家有所收获,若想了解更多关于java – 如何点击Selenium WebDriver中的隐藏元素?、Selenium Webdriver选择新窗口C#、selenium-webdriver – 如何使用webdriver中的css选择器按值定位元素?、selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接等相关知识,可以在本站进行查询。

本文标签: