gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:03:09 31 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数将接收“浏览器实例”(我的意思是 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 如果 URL 有效则返回 True

BrowserInstance 是以下函数的返回值,该函数在 get(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

我期望在运行以下脚本后,open_New_TAB 将在由 Open_Browser 函数打开的同一浏览器窗口中打开一个新选项卡:

browser = Open_Browser('http://10.0.1.76')
open_New_TAB(browser, 'http://10.0.7.131')

但是,不幸的是,结果是为 '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 + 't') 但没有成功(我没有得到新的选项卡,也没有异常)

最佳答案

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

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

它的名称为browser.link.open_newwindow。值为 2 表示关闭,值为 3 表示打开。您可以尝试通过配置文件设置该值,看看会发生什么。

关于python - 如何打开新的浏览器选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49384229/

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