Открыть URL в Python в существующей вкладке

Ваш подзапрос в существующем является некоррелированным подзапросом, что означает, что он не зависит от значения в записи при обновлении.

Вместо этого используйте

update EW_POLYLINE
set stan_zmiany = 3
where EW_POLYLINE.STAN_ZMIANY = 0
and NOT EXISTS (
    SELECT 1
    FROM EW_OBIEKTY 
    INNER JOIN EW_OB_ELEMENTY 
        ON EW_OBIEKTY.UID = EW_OB_ELEMENTY.UIDO
    WHERE EW_OBIEKTY.STATUS = 0 AND EW_OB_ELEMENTY.TYP <> 1
    AND EW_OB_ELEMENTY.IDE = EW_POLYLINE.ID
)

Обратите внимание на использование not exists вместо exists, потому что вы действительно хотите обновить записи из EW_POLYLINE, которые не соответствуют этому требованию.

Таким образом, вам не нужно левое соединение в подзапросе, а условие EW_POLYLINE.ID = EW_OB_ELEMENTY.IDE делает подзапрос, связанный с внешним оператором обновления.

Также обратите внимание, что это имеет аналогичную форму, как оператор select в последнем решении I приведенный в мой ответ на ваш предыдущий вопрос .

0
задан jonrsharpe 19 January 2019 в 16:21
поделиться

2 ответа

Используйте Javascript:

OpenSameTab = '<script language="JavaScript" type="text/JavaScript">window.location = \'%s\';</script>'

, а затем

print OpenSameTab % 'file.py'
0
ответ дан Davide Andrea 19 January 2019 в 16:21
поделиться

Насколько я понимаю, если вы используете webbrowser.open(<url>), невозможно избежать получения новой вкладки каждый раз; с помощью веб-браузера можно убедиться, что он открывается в том же окне браузера, но не на той же вкладке. Чтобы настроить таргетинг на одно и то же окно, вам необходимо установить new=0, например:

webbrowser.open('http://Sonoff_IP/cm?cmnd=POWER%20TOGGLE', 0);

. Однако, если вы можете открыть ссылку, используя библиотеку selenium, это возможно.

Прочитайте документы для selenium и webdriver здесь: https://selenium-python.readthedocs.io/api.html

Основная проблема с Делая это с помощью Selenium, я думаю, вы теряете возможность нацеливаться на веб-браузер пользователя по умолчанию, и по умолчанию Selenium, по-видимому, использует Firefox по умолчанию, поскольку облегченный порт Firefox включен в саму библиотеку Selenium.

Пример открытия ссылки в Selenium будет выглядеть следующим образом:

from selenium import webdriver

link1="https://www.google.com"
link2="https://www.youtube.com/"
driver=webdriver.Firefox()
driver.get(link1)
driver.get(link2)

Selenium поддерживает множество различных браузеров, так что если вы можете получить веб-браузер пользователя по умолчанию из webbrowser модуль или каким-либо другим способом, вы сможете использовать эту информацию, чтобы открыть URL-адреса на той же вкладке с браузером пользователя по умолчанию.

Надеюсь, это поможет и удачи! :)

0
ответ дан DrewT 19 January 2019 в 16:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: