我有一个测试,基本上会点击页面页脚上的链接。我们有三个,他们都通往不同的地方:
以下代码生成正确的断言并单击链接:
if @link_selection.eql?('leave feedback')
@wait.until {@driver.find_element(css: => 'cell.feedback').click}
@wait.until {@driver.find_element(css: => 'a[href="https://docs.google.com/a/showmyhomework.co.uk/forms/d/1LP8BZ950TSXXDR1HuVz7yhv9Cp3h6scmQtNFqIRW_XI/viewform"').click}
puts "Leave feedback link clicked"
我为每个不同的链接位置进行了模块化。 单击链接后,它会自然在新的浏览器选项卡中打开。然后我想扩展测试,然后查看打开的选项卡,然后在该页面上进行断言。我想问一下如何处理Selenium中的新标签及其中的方式:
一个。它断言新标签是打开的(并切换到它)
湾然后它可以断言页面的标题或标题(以便测试确保页面已被打开。
答案 0 :(得分:0)
c#中的以下代码,请随时将其更改为ruby。
// This gets the window handles of open available windows(also, tabs)
var availableWindows= driver.WindowHandles;
要切换到与页面标题相关的新标签页:
string Title= "whateveryourpagetitleis";
foreach (string windowId in availableWindows)
{
string windowTitle = driver.SwitchTo().Window(windowId).Title;
if (windowTitle.ContainsIgnoreCase(title))
{
driver.SwitchTo().Window(windowId);
}
}
您可以使用这些功能,然后相应地使用您的断言。但是,您正在寻找的是WindowHandles