Можно ли свернуть окно Chrome во время работы селена? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть проект для получения информации с веб-сайта.Я хочу посмотреть на процесс в окне Chrome, поэтому я не могу использовать браузер без головы.Но иногда я хочу свернуть окно Chrome.

Но я обнаружил, что селен будет работать неправильно после того, как я сверну окно Chrome вручную, но иногда нет.Если что-то пошло не так, исключение

элемент не активируется в точке, другой элемент получит нажатие

будет поднят или иногда селен просто остановится.

Я долго искал, что некоторые люди говорили, что окно chrome должно быть сфокусировано и не может быть свернуто, нажав «-» в строке заголовка окна.И альтернативное решение:

web.set_window_position (-2000, -2000)

, чтобы заставить окно перемещаться за пределы экрана.

Икто-то говорит, имитируя ярлыки, чтобы свернуть окно.Но я думаю, что это то же самое, что щелкнуть «-» вручную, я не прав?

Мой вопрос:

  • Требуется ли для селена действительно хромированное окно, не свернутое?Почему иногда он может запускать селен после минимизации, а иногда нет?
  • Если я использую

    set_window_position (-2000, -2000)

    чтобы переместить окно невидимым, я нажимаю значок окна в нижней части ОС (извините, что не знаю, как оно называется).Обычно при нажатии окно будет свернуто.Что касается этого хромированного окна, будет ли оно считаться свернутым и работать неправильно?

Мне очень жаль, что я плохо знаю английский.Я надеюсь, что у меня есть четкое описание моей проблемы.

Окружающая среда:

  • python 3.6
  • хром 66.0
  • селен 3.11.0
  • Windows Server 2012

Редактировать, чтобы добавить код:

wait.WebDriverWait(driver,100000).until(EC.visibility_of_element_located((By.ID,'commMgrCompositionMessage')))
        textArea = driver.find_element_by_id('commMgrCompositionMessage')
        driver.execute_script("arguments[0].value="+"'"+modelStr+"';",textArea)
        time.sleep(1)
        wait.WebDriverWait(driver,10000).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#sendemail_label')))
        allSendMailLabel = driver.find_elements_by_css_selector('#sendemail')
        allSendMailLabel = allSendMailLabel[1]
        driver.execute_script("arguments[0].click();", allSendMailLabel)

1 Ответ

0 голосов
/ 23 мая 2018

Если вы видите здесь вопрос Отладка ошибки "Элемент не активен в точке" , есть ошибка в chromedriver, которая вызывает это.Вопрос для него был создан здесь .В 27-м комментарии есть обходной путь, но вы можете переключиться на драйвер Firefox и посмотреть, работает ли он.В противном случае свернутые окна не должны вызывать проблем.

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