当前位置: 首页 > 知识库问答 >
问题:

如何打开新的浏览器选项卡?

扶冠宇
2023-03-14

我试图编写一个函数,它将接收一个“浏览器实例”(我指的是webdriver.firefox()),并打开一个带有特定URL的新选项卡。

这是函数:

def open_New_TAB(BrowserInstance, URL):
    if URL_Validation(URL):
        script = "window.open('" + URL + "')"
        BrowserInstance.execute_script(script)
    else:
        print('Invalid URL')
        return

url_validation返回True(如果URL有效)

def Open_Browser (URL=None, browserType='FF', Browser_Wait=20, Hide=False, 

    Maximize=False, Retries=3):

    if browserType == 'FF' or browserType == 'FireFox' or browserType == 'Firefox' or browserType == 'firefox':
        # FireFox Parameters
        profile = webdriver.FirefoxProfile()
        profile.accept_untrusted_certs = False
        browser = webdriver.Firefox(firefox_profile = profile, executable_path='G:\\Python\\geckodriver-v0.19.1-win64\\geckodriver.exe')

    elif browserType == 'Chrome' or browserType == 'chrome':
        # Chrome Parameters
        browser = webdriver.Chrome(executable_path="G:\\Python\\chromedriver_win32\\chromedriver.exe")

    elif browserType == 'IE' or browserType == 'Ie' or browserType == 'Explorer':
        browser = webdriver.Ie(executable_path="G:\\Python\\IEDriverServer_x64_3.8.0\\IEDriverServer.exe")

    else:
        print('No such browser type')

    browser.implicitly_wait(Browser_Wait) # Implicit wait
    browser.set_page_load_timeout(20) # Set the Timeout for waiting till the page loads

    for attempt in range(Retries):
        try:
            browser.get(URL)
        except TimeoutException:
            print("Timeout Expired at the:", attempt+1,'attempt')
    #         browser.close()
            continue   
    return browser
browser = Open_Browser('http://10.0.1.76')
open_New_TAB(browser, 'http://10.0.7.131')
 driver = webdriver.Firefox()
 driver.get("https://10.0.1.76")
 driver.execute_script("window.open('https://10.0.1.76')")

如果有人能告诉我我做错了什么,我将非常感激。如果您有其他方法来完成打开新选项卡的任务,这是可以的。顺便说一下,我曾尝试使用:driver.find_element_by_tag_name('body').send_keys(keys.control+not'),但没有成功(我没有得到新的选项卡,也没有异常

共有1个答案

慕河
2023-03-14

您正在获得一个新窗口,因为您正在请求一个新窗口

您正在使用的JavaScript在命令中说明了这一点。Firefox中有一个在选项卡中打开新窗口的设置,但我不确定它是否能在Selenium测试中工作。

它名为browser.link.open_newwindow。值2为off,值3为ON。您可以尝试通过配置文件设置该值,看看会发生什么。

 类似资料:
  • 我有一个执行上传的应用程序。我似乎无法让文件系统弹出关闭。它不会搞砸测试,它会继续在后台运行,但我想观看测试的奇怪机会有四分之一的屏幕被覆盖了。所以我想解决这个问题的方法就是强制在新选项卡中完成测试的其余部分。我不知道如何做到这一点。 这是我的上传代码: 与此问题相关:发送filepath后上传模态不会关闭

  • 我遇到了一个有用的PDF生成代码,用于在Spring MVC应用程序中向客户机显示文件(“使用Spring MVC返回生成的PDF”): 我添加了一个声明,该方法返回一个PDF文件(“Spring 3.0 Java REST return PDF Document”):。 我的问题是,当上面的代码执行时,它立即要求客户机保存PDF文件。我希望PDF文件首先在浏览器中查看,这样客户端就可以决定是否保

  • 我使用的是pdfbox图书馆2.0版本。我需要在新的浏览器选项卡,即打印视图中打开PDF。 就像我们正在从iText迁移到PDFBox,下面是iText的现有代码。 在下面的代码中,有PDPATION类来实现同样的功能。是的, 并且要在doc上应用print Javascript, 引用链接 请用这个指引我。

  • 有人能帮我解决下面代码的问题吗?我的意图是能够在浏览器中打开一个新的标签。脚本通过,但没有真正打开新选项卡

  • 如何在Chrome浏览器上切换到父选项卡到新选项卡并打开新URL? 我想在打开新选项卡后访问一个新的URL,所以我已经编写了如下代码,但我能够打开新选项卡,并且系统正在父窗口中打开第二个URL,而不是在第二个选项卡上?