Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2018 17:12:46

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Selenium

Доброго времени суток.
Задача:
1) открыть браузер;
2) произвести поиск инфы;
3) все. Браузер должен остаться открытым.
Для примера наваял короткий код, все работает, но после выполнения основной части скрипт закрывает браузер. Есть ли способ отучить его это делать?

 from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
Request = 'python'
def check_exists_by_id(xpath, driver):
    try:
        driver.find_element_by_id(xpath)
    except NoSuchElementException:
        return False
    return True
def spawn_browser():
    driver = webdriver.Chrome()
    driver.get("https://www.google.ru")
    find_my_target(Request, driver)
def find_my_target(r, driver):
    while True:
        if check_exists_by_id('lst-ib', driver):
            driver.find_element_by_id("lst-ib").clear()
            driver.find_element_by_id("lst-ib").send_keys(r)
            driver.find_element_by_id("lst-ib").send_keys(Keys.ENTER)
            break
    print('нашел')
    
spawn_browser()

PS: более изящный способ дождаться выполения прогрузки страницы чем цикл While есть?

Офлайн

#2 Сен. 2, 2018 16:35:39

aiscy
Зарегистрирован: 2015-06-17
Сообщения: 52
Репутация: +  9  -
Профиль   Отправить e-mail  

Python + Selenium

 from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
REQUEST = 'python'
def spawn_browser():
    opts = ChromeOptions()
    opts.add_experimental_option('detach', True)
    driver = Chrome(options=opts)
    driver.get("https://www.google.ru")
    find_my_target(REQUEST, driver)
def find_my_target(r, driver):
    input_form = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, "input#lst-ib")))
    input_form.clear()
    input_form.send_keys(r)
    input_form.submit()
spawn_browser()

Офлайн

#3 Сен. 2, 2018 19:15:44

SomethingButNotNickName
Зарегистрирован: 2017-12-19
Сообщения: 75
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Selenium

aiscy
Спасибо

Отредактировано SomethingButNotNickName (Сен. 2, 2018 19:31:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version