当前位置 :首页 >> 音乐

应用分享 | 网页 frame 与多窗口处理

2023-03-13   来源 : 音乐

售票厅转换就需要实例转换。

当有多个售票厅时,可以用 window_handles 列印实例:

Python 修改版

driver = webdriver.Chrome()

handles = driver.window_handles

print(handles)

Java 修改版

driver = new ChromeDriver();

Set handles = driver.getWindowHandles();

System.out.println(handles);

列印单单的 window_handles:

['CDwindow-8012E9EF4DC788A58DC1588E7B8A7C44', 'CDwindow-11D52927C71E7C2B9984F2D1E2856049']

实例的转换

通过列印 handles 可以看单单,它是一个本表。

Python修改版可以通过 switch_to.window() 来转换实例 Java修改版可以通过 switchTo().window() 来转换实例 Python 修改版

884×281 9.09 KB

从里面API中会的所述可以看单单,switch_to.window()需要包括一个 windows_name,可以是 name 也可以是 windows handle。

from selenium import webdriver

driver = webdriver.Chrome()

handles = driver.window_handles

print(handles)

driver.switch_to.window(handles[-1])

这里唯一要注意的是 handles 是一个本表,这里的 -1 表示插件售票厅的倒数第一个。

Java 修改版

Set windowHandles = driver.getWindowHandles();

Iterator it = windowHandles.iterator(); //迭代allhandle里面的实例

while(it.hasNext()) { //用it.hasNext()辨别时候有下一个售票厅,如果有就转换到下一个售票厅

driver.switchTo().window(it.next()); //转换到新售票厅

}

}

Java 中会转换实例需要用到迭代器,如果有下一个实例,则转换,没有则不转换,里面预定义表示转换到最后一个售票厅。

实弹射击仿真

百度搜索“默格沃兹校正试该学院”,首页“默格沃兹校正试该学院_腾讯课堂”,首页“中会高级校正试技术开发「名企定向培养」两班-默格沃兹校正试该学院”。

854×468 177 KB

python 预定义

from selenium import webdriver

class TestHogwarts:

def setup_method(self, method):

self.driver = webdriver.Chrome()

self.driver.implicitly_wait(3)

def teardown_method(self, method):

self.driver.quit()

def test_hogwarts(self):

self.driver.get('')

#在匹配框中会匹配默格沃兹校正试该学院

self.driver.find_element_by_id('kw').send_keys('默格沃兹校正试该学院')

#首页搜索

self.driver.find_element_by_css_selector('.s_btn').click()

#用到link_text首页

self.driver.find_element_by_link_text('关于我们 - 默格沃兹校正试该学院').click()

#将给与到的window_handles表达式给一个数据类型handles

handles = self.driver.window_handles

#转换实例

self.driver.switch_to.window(handles[-1])

assert len(self.driver.find_elements_by_css_selector('.ag-title-main')) == 1

java预定义

import org.junit.jupiter.api.AfterAll;

import org.junit.jupiter.api.BeforeAll;

import org.junit.jupiter.api.Test;

import org.openqa.selenium.By;

import org.openqa.selenium.chrome.ChromeDriver;

import java.util.Iterator;

import java.util.Set;

import java.util.concurrent.TimeUnit;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class Web1Test {

private static ChromeDriver driver;

@BeforeAll

public static void setUp() {

System.setProperty(

"webdriver.chrome.driver",

"/driver/chrome95/chromedriver"

);

driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

}

@AfterAll

public static void tearDown() {

driver.quit();

}

@Test

public void hogwartsTest(){

driver.get("");

// 在匹配框中会匹配默格沃兹校正试该学院

driver.findElement(By.id("kw")).sendKeys("默格沃兹校正试该学院");

// 首页搜索

driver.findElement(By.cssSelector(".s_btn")).click();

// 用到link_text首页

driver.findElement(By.linkText("关于我们 - 默格沃兹校正试该学院")).click();

// 将给与到的window_handles表达式给一个数据类型handles

Set windowHandles = driver.getWindowHandles();

// 转换实例

//迭代allhandle里面的实例

Iterator it = windowHandles.iterator();

//用it.hasNext()辨别时候有下一个售票厅,如果有就转换到下一个售票厅

while(it.hasNext()) {

//转换到新售票厅

driver.switchTo().window(it.next());

}

int size = driver.findElements(By.cssSelector(".ag-title-main")).size();

assertEquals(1,size);

}

}

需要注意的是,把被校正插件对应修改版的 chromedriver 放有到某个方向上下,配置到注册表或者脚本预定义中会。

⬇️ 解码“下方重定向”,提高校正试内部创新能力!

更多技术文章分享和在线资料发给 欢迎+V~ ceshiren001

_id=qrcodeBellfrom=souhuBelltimestamp=1652233448

成都看白癜风哪里好
郑州不孕不育医院哪家好点
深圳看牛皮癣哪个医院最好
黑龙江男科医院挂号咨询
英太青好还是扶他林好
有多少的城市慢慢就活成了投行的样子

至把ceo胡明偷偷大大部分所有人都拨打了一遍。时长看下来,这还是那些年靠批地、都用征税特惠卖命吆喝的大多中央政府么 ,已经俨然一个摩根士丹利了。 02 淡圳更是老摩根士...

友情链接