如何使用Selenium检查可以从一个网页中打开多少个窗口 - java

当网页上已经打开单个/多个窗口时,我们可以使用硒来找出已经打开的窗口数。但是,是否有任何方法可以通过任何标签或其他任何方法来找出使用硒在给定网页上实际可以打开多少个窗口。

例如,我们为网页上存在的所有URL提供了一个定位标记,因此有什么方法可以找出网页上可以打开多少个窗口,或者单击多少按钮/链接可以打开一个窗口。

以Java或python以及任何网页提供的解决方案将不胜感激。

参考方案

直接回答,实际上,没有确定的方法可以计算使用Selenium从一个网页中可以打开多少个(子)窗口。

<a>:锚元素

HTML <a> element(或锚元素)定义了一个超链接,该超链接用于将一个页面链接到其他网页,文件,同一页面内的位置,电子邮件地址或任何其他URL。 <a>元素最重要的属性是href属性,它指示链接的目的地。按照以下方式,目标属性只能与锚标记中的href属性一起使用:

如果未使用target属性,则链接将在同一页面中打开。

一个例子:

<a href="https://www.w3schools.com">Visit W3Schools.com!</a>

如果目标属性设置为_blank,则该链接将在新的浏览器窗口或新的选项卡中打开。

一个例子:

<!DOCTYPE html>  
<html>  
    <head>  
        <title></title>  
    </head>  
    <body>  
        <p>Click on <a href="https://www.javatpoint.com/" target="_blank"> this-link </a>to go on home page of JavaTpoint.</p>  
    </body>  
</html> 

现在,您可以通过HTML Tag触发新的TAB / Windows,直到测试环境有足够的资源(例如内存,共享内存等)为止。您可以在unknown error: session deleted because of page crash from unknown error: cannot determine loading status from tab crashed with ChromeDriver Selenium中找到相关的讨论

注意:一个重要方面是,如果您要打开一个新的TAB / Window,并打算将Selenium的焦点切换到新打开的TAB / Window,则需要按照以下步骤诱导WebDriverWait:

(Java示例)ExpectedConditions为numberOfWindowsToBe(int expectedNumberOfWindows)

new WebDriverWait(driver,10).until(ExpectedConditions.numberOfWindowsToBe(2));

在这里您可以找到detailed discussion

(Python示例)expected_conditions为number_of_windows_to_be(num_windows)

WebDriverWait(driver, 10).until(expected_conditions.number_of_windows_to_be(2))

在这里您可以找到detailed discussion

Java中的“ <<”运算符 - java

最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…

Selenium Webdriver(Java)-查找禁用了属性=“”的元素 - java

我有<input id="test" disabled="">。如何找到具有属性disable =“”的元素。附言:在这种情况下,我不需要使用ID。我想找到一个具有禁用属性的元素。我尝试使用String enbl = Login.driver.findElement(By.cssSelector("…

JAVA:如何检查对象数组中的所有对象是否都是子类的对象? - java

我有一个对象数组。现在,我要检查所有这些对象是否都是MyObject的实例。有没有比这更好的选择:boolean check = true; for (Object o : justAList){ if (!(o instanceof MyObject)){ check = false; break; } } java大神给出的解决方案 如果您不喜欢循环,则…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…