Попытка найти идентификатор на веб-сайте и получить ошибку «Chrome not достижим» - PullRequest
0 голосов
/ 27 сентября 2018

Вот мой код.

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from bs4 import BeautifulSoup
import time
from time import sleep
browser = webdriver.Chrome("C:/Utility/chromedriver.exe")

wait = WebDriverWait(browser, 5)

web = Browser()
url = 'https://www_corp_site/admin/?page=0'
web.go_to(url)

web.type('first.last@gmail.com', into='username')
web.click('Next')
# Wait for 2 seconds
time.sleep(1)

# password
web.type('pswd', into='Password')
web.click('Next')
time.sleep(1)

element = browser.find_element_by_id('main_content')
print(element.text)

По какой-то причине открываются два браузера Chrome, и я получаю эту ошибку:

WebDriverException: chrome not reachable
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.17134 x86_64)

Как открыть один браузер, сослаться на него и напечатать все данные из идентификатора main_content?Или идентификатор таблицы = 'dags'?

enter image description here

1 Ответ

0 голосов
/ 27 сентября 2018

Вы звоните webdriver.Chrome() и Browser().Я не знаю, что такое Browser(), но, похоже, он открывает еще один экземпляр Chrome.Итак, когда вы определяете переменную browser и переменную web, вы получаете экземпляр Chrome для каждого из них.Попробуйте это:

browser = webdriver.Chrome("C:/Utility/chromedriver.exe")

wait = WebDriverWait(browser, 5)

url = 'https://www_corp_site/admin/?page=0'
browser.get(url)

browser.find_element_by_id('username').type('first.last@gmail.com')
browser.find_element_by_id('Next').click()
# Instead of sleeping, use Selenium's wait feature to proceed as soon as the element is available
WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, 'Password')))

# password
browser.find_element_by_id('Password').type('pswd')
browser.find_element_by_id('Next').click()
WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, 'main_content')))

element = browser.find_element_by_id('main_content')
print(element.text)

Я не уверен, что это идентификаторы элементов, поэтому вам, возможно, придется их изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...