У меня есть проект для получения информации с веб-сайта.Я хочу посмотреть на процесс в окне 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)