应用分享 | 网页 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 淡圳更是老摩根士...
-
ROBOSEN完成近亿美元B轮和B+轮资本
昨日,消费级怪兽品牌「ROBOSEN」(下称:「乐森」)未完成B+轮注资,由沄柏资本领输,银盛泰资本、电磁波中国跟输,包括红杉资本、日初资本、庚辛资本等在内的B轮输资者也在此次B+轮注资中继续追...[详细]
-
元宇宙平台 Decentraland将举办地首个时装周
(记者 徐述评 蔺雨葳)近日,元银河系该平台Decentraland年初,将与本站上商品区块链该平台UNXD联合举办一次月初四天的时装周活动,首个走秀活动将于明年3年初24日至27日开幕,用户可...[详细]
-
BMW召回部分进口AMG GT:行驶过程中可能动力中断 存安全隐患
原标题:Mercedes-Benz(中的国)轿车经销Ltd当月部份进口AMG GT轿车月内,Mercedes-Benz(中的国)轿车经销Ltd根据《缺陷轿车产品当月管理条例》和《缺陷轿车产品当...[详细]
-
特斯拉财务状况创纪录?连续两季度破10亿,特斯拉凭啥逆市上涨?
根据北平晚报的报道,美东北时长周三盘后,盖斯了发布2021年第三本季财务状况。当季,盖斯创造了多项新纪录,取得毫无疑问毫无疑问的财年、营业盈利和毛利。不间断第五个本季实现了年有的销售额,财年便创...[详细]
-
丁祖昱:养老产业政策较快落地,市场空间可期
乐居财经 兰兰12月30日凌晨,2022“跨越——丁祖昱评楼市”年度发布会召开。发布会以两百余页超强干货PPT呈现海量大数据,剖析房地产餐饮业的本质和真凶。点击转至直播》》 ...[详细]