簡體   English   中英

Python webbrowser.open行在不應該打開時會打開兩個選項卡

[英]Python webbrowser.open line opens two tabs when it is not supposed to

下面,我有以下代碼,該代碼在打開錯誤的URL后打開正確的URL。 我知道該鏈接不會由於print(link)輸出而生成兩次。 因此,一個鏈接會以某種方式在瀏覽器中打開兩個選項卡,我不知道為什么。 任何想法將不勝感激!

我在Windows 10上運行python 3.6。

from PIL import Image, ImageEnhance, ImageFilter
import pyscreenshot as ImageGrab
import pytesseract
import webbrowser
import urllib

# I have other code in the middle that is not important

query = textQ
query_encoded = urllib.parse.quote_plus(query)
link = 'http://google.com/search?q='+ query_encoded
print(link)
webbrowser.open_new_tab(link)

編輯1為什么下面的代碼打開兩個選項卡?

from PIL import Image, ImageEnhance, ImageFilter
import pyscreenshot as ImageGrab
import pytesseract
import webbrowser
import urllib


pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-
OCR/tesseract'


if __name__ == "__main__":
    # part of the screen
    img=ImageGrab.grab()
    img.save('screenshot.png')
#-#


query = "textQ"
query_encoded = urllib.parse.quote_plus(query)
link = 'http://google.com/search?q='+ query_encoded
print(link)
webbrowser.open_new_tab(link)

當試圖使文本編輯器中的鏈接可點擊時,我遇到了相同的問題。 我在Windows 10上使用python 2.7.13,在文本編輯器中使用gtk,發現事件處理是導致問題的原因。

我懷疑您的其他“不重要的代碼”可能會引起問題,因為我無法使用問題中的代碼來重現錯誤。 我不知道我的問題/解決方案是否適用,但希望對您有所幫助:

問題識別:我正在使用的文本編輯器檢測到文本緩沖區中的更改並自動保存。 自動保存時,它將按鈕按下信號連接到超鏈接_點擊處理程序。 所以我的問題是,只要處理程序自動保存(當我編輯文本時),便會建立與處理程序的新連接。 從那時起,單擊鏈接將激活多個處理程序中的信號處理,這將在每個新選項卡中打開url,從而打開多個選項卡。

解決方案:在連接處理程序之前,請檢查處理程序是否已連接,以便僅連接一個處理程序。

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM