Вот почему исходное выражение не сработало.
Из man bash :
Расширение скобки выполняется перед любыми другими расширениями , и в результате сохраняются любые символы, специальные для других расширений. Это строго текстовое. Bash не применяет синтаксическую интерпретацию контекста расширения или текста между фигурными скобками.
blockquote>Итак, расширение скобки - это что-то, сделанное раньше, как чисто текстовое макро-операции, до расширения параметра .
Корпуса представляют собой высоко оптимизированные гибриды между макропроцессорами и более формальными языками программирования. Чтобы оптимизировать типичные варианты использования, язык становится более сложным, и некоторые ограничения принимаются.
Рекомендация
blockquote>Я бы предложил придерживаться Posix1 функции. Это означает использование
for i in <list>; do
, если список уже известен, в противном случае используйтеwhile
илиseq
, как в:#!/bin/sh limit=4 i=1; while [ $i -le $limit ]; do echo $i i=$(($i + 1)) done # Or ----------------------- for i in $(seq 1 $limit); do echo $i done
1. Bash - отличная оболочка, и я использую ее в интерактивном режиме , но я не ставил bash-isms в мои скрипты. Скриптам может понадобиться более быстрая оболочка, более безопасная, более встроенная. Им может потребоваться запустить все, что установлено как / bin / sh, и тогда есть все обычные аргументы pro-standards. Помните shellshock, aka bashdoor?
Вы можете вызвать get (), указав путь к Chrome. Ниже приведен пример - замените chrome_path на правильный путь для вашей платформы.
import webbrowser
url = 'http://docs.python.org/'
# MacOS
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
# Windows
# chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
# Linux
# chrome_path = '/usr/bin/google-chrome %s'
webbrowser.get(chrome_path).open(url)
import webbrowser
new = 2 # open in a new tab, if possible
# open a public URL, in this case, the webbrowser docs
url = "http://docs.python.org/library/webbrowser.html"
webbrowser.get(using='google-chrome').open(url,new=new)
Вы можете использовать любой другой браузер, изменив параметр 'using', как указано в ссылке
.В случае Windows, путь использует путь в стиле UNIX, поэтому сделайте обратную косую черту в прямую косую черту.
webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com")
См .: Python: универсальный webbrowser.get (). Open () для chrome.exe не работает
from selenium import webdriver
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get("http://www.python.org")
по крайней мере в Windows этого должно быть достаточно, и вам не нужно заботиться о пути к браузеру.
import webbrowser
url = 'https://stackoverflow.com'
webbrowser.open(url)
Укажите путь к вашему приложению Chrome и не забудьте поставить% s в конце. Я все еще пытаюсь открыть браузер с HTML-кодом, не сохраняя файл ... Я добавлю код, когда найду, как.
import webbrowser
chromedir= "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s"
webbrowser.get(chromedir).open("http://pythonprogramming.altervista.org")
>>> ссылка на: [страницу в моем блоге, где я это объясняю] < <
Пожалуйста, проверьте это:
import webbrowser
chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
webbrowser.get(chrome_path).open('http://docs.python.org/')
В Selenium для получения URL-адреса активной вкладки попробуйте
from selenium import webdriver
driver = webdriver.Firefox()
print driver.current_url # This will print the URL of the Active link
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
print driver.current_url
Я здесь просто предоставляю вам псевдокод.
Вы можете поместить это в цикл и создать свой собственный поток.
Я новичок в Stackoverflow, поэтому все еще учусь писать правильные ответы.
Вот несколько надежный способ получить путь к Chrome.
(Обратите внимание, что вы должны делать это только , если вам конкретно нужен Chrome, а не браузер по умолчанию, или Chromium, или что-то еще.)
def try_find_chrome_path():
result = None
if _winreg:
for subkey in ['ChromeHTML\\shell\\open\\command', 'Applications\\chrome.exe\\shell\\open\\command']:
try: result = _winreg.QueryValue(_winreg.HKEY_CLASSES_ROOT, subkey)
except WindowsError: pass
if result is not None:
result_split = shlex.split(result, False, True)
result = result_split[0] if result_split else None
if os.path.isfile(result):
break
result = None
else:
expected = "google-chrome" + (".exe" if os.name == 'nt' else "")
for parent in os.environ.get('PATH', '').split(os.pathsep):
path = os.path.join(parent, expected)
if os.path.isfile(path):
result = path
break
return result
Если вы установили браузер по умолчанию в Windows, вы можете сделать это:
open_google = webbrowser.get('windows-default').open('https://google.com')
работавший для меня для открытия новой вкладки на Google Chrome:
import webbrowser
webbrowser.open_new_tab("http://www.google.com")
Сделанный этим для игры я играю, это было релевантно, таким образом, я оставляю его. Это реально простой. Захватывает значение от platform.system. Проверки это против известных значений для различных операционных систем. Если это находит соответствие, это устанавливает хромовый путь для Вас. Если ни один не найден, это открывает браузер по умолчанию для Вашей ссылки. Надежда его полезное для кого-то.
import time
import os
import webbrowser
import platform
user_OS = platform.system()
chrome_path_windows = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
chrome_path_linux = '/usr/bin/google-chrome %s'
chrome_path_mac = 'open -a /Applications/Google\ Chrome.app %s'
chrome_path = ''
game_site_link = 'https://www.gamelink'
if user_OS == 'Windows':
chrome_path = chrome_path_windows
elif user_OS == 'Linux':
chrome_path = chrome_path_linux
elif user_OS == 'Darwin':
chrome_path = chrome_path_mac
elif user_OS == 'Java':
chrome_path = chrome_path_mac
else:
webbrowser.open_new_tab(game_site_link)
webbrowser.get(chrome_path).open_new_tab(game_site_link)
я на самом деле изменил его еще многие здесь, это обновляется, так как я все еще работаю над этим средством запуска
import time
import webbrowser
import platform
import subprocess
import os
import sys
privateServerLink = 'https://www.roblox.com/games/2414851778/TIER-20-Dungeon-Quest?privateServerLinkCode=GXVlmYh0Z7gwLPBf7H5FWk3ClTVesorY'
userBrowserC = input(str("Browser Type: chrome, opera, iexplore, firefox : "))
userSleepTime = int(input("How long do you want it to run?"))
if userBrowserC == 'opera':
userBrowserD = 'launcher.exe'
else:
userBrowserD = userBrowserC
if userBrowserC == "chrome":
taskToKill = "chrome.exe"
else:
taskToKill = "iexplore.exe"
if userBrowserC == 'chrome' and platform.system() == 'Windows':
browserPath = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
elif userBrowserC == 'chrome' and platform.system() == 'Linux':
browserPath = '/usr/bin/google-chrome %s'
elif userBrowserC == 'chrome' and platform.system() == 'Darwin' or
platform.system() == 'Java':
browserPath = 'open -a /Applications/Google\ Chrome.app %s'
elif userBrowserC == 'opera' and platform.system() == 'Windows':
browserPath = 'C:/Users/'+ os.getlogin() +'/AppData/Local/Programs/Opera/launcher.exe'
elif userBrowserC == 'iexplore' and platform.system() == 'Windows':
browserPath = 'C:/Program Files/internet explorer/iexplore.exe %s'
elif userBrowserC == 'firefox' and platform.system() == 'Windows':
browserPath = 'C:/Program Files/Mozilla Firefox/firefox.exe'
else:
browserPath = ''
while 1 == 1:
subprocess.Popen('SynapseX.exe')
time.sleep(7)
webbrowser.get(browserPath).open_new_tab(privateServerLink)
time.sleep(7)
os.system('taskkill /f /im '+taskToKill)
time.sleep(userSleepTime)