gpt4 book ai didi

c# - 在新标签页中打开链接 selenium c#

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:31 28 4
gpt4 key购买 nike

我正在编写一个程序来运行我网站上列出的视频以进行测试,这里我需要的是在同一浏览器窗口的不同选项卡中运行视频。

我在列表 videoLinks = getVideoUrls(); 中有一百个视频 url现在我需要的是一次执行这些视频 5。

ChromeDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.withoutabox.com" + videoLink);

如果我采用上述方式,那么对于所有视频,我都必须创建一个新的 ChromeDriver 对象。我想使用单个 Chrome 浏览器对象。

我试过了

IWebElement body = driver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Control + "t");

它只添加一个新选项卡但不打开那里的链接。请让我知道我应该如何解决它。我用谷歌搜索但找不到我的解决方案,所以想寻求帮助。

最佳答案

试试这个:

public void SwitchToTab(object pageId)
{
webDriver.SwitchTo().Window(pageId.ToString());
}

您可以使用 CurrentWindowHandle 来查找当前选项卡。

webDriver.CurrentWindowHandle;

对于您的场景,我正在使用该代码:

public IPageAdapter OpenNewTab(string url)
{
var windowHandles = webDriver.WindowHandles;
scriptExecutor.ExecuteScript(string.Format("window.open('{0}', '_blank');", url));
var newWindowHandles = webDriver.WindowHandles;
var openedWindowHandle = newWindowHandles.Except(windowHandles).Single();
webDriver.SwitchTo().Window(openedWindowHandle);
return new SeleniumPage(webDriver);
}

更新

窗口打开创建新的弹出窗口。默认情况下,此选项可以被浏览器设置阻止。在浏览器中手动禁用弹出窗口阻止。

要检查这一点,请在浏览器中打开 js 控制台并尝试执行命令 window.open(' http://facebook.com ', '_blank');

如果新窗口成功打开,则一切正常。

您还可以创建具有特定设置的 chrome 驱动程序。这是我的代码:

var chromeDriverService = ChromeDriverService.CreateDefaultService();
var chromeOptions = new ChromeOptions();
chromeOptions.AddUserProfilePreference("profile.default_content_settings.popups", 0);
return new ChromeDriver(chromeDriverService, chromeOptions, TimeSpan.FromSeconds(150));

关于c# - 在新标签页中打开链接 selenium c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34138838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com