Я пытаюсь контролировать Google Hangouts с Chromedriver Selenium на Python 3.4. Чтобы найти элементы страницы на Google Hangouts start page, я использую find_elements_by_xpath()
. Однако, когда я проверяю элемент страницы там, я замечаю, что его значение XPath изменяется со временем. Например, кнопка отключения звука имеет значение XPath, которое, по-видимому, случайным образом сдвигается между //*[@id=":sv.rt"]/div/div[2]
и //*[@id=":sw.rt"]/div/div[2]
.Как я могу использовать веб-редактор Selenium для поиска элементов страницы в Hangouts Google, значения XPath которых со временем меняются со временем?
Я что-то не так? Если нет, может ли кто-нибудь предложить обходное решение (например, найти элемент страницы по его текстовому описанию), чтобы я мог продолжать нажимать кнопку отключения звука/включения, используя ту же команду Python?
Возможно, это связано с тем, что они хотят, чтобы вы использовали [Google Hangouts API] (https://developers.google.com/+/hangouts/getting-started) вместо того, чтобы нарушать их ToS и соскабливать страницу. – abarnert
Имеет ли значение для вас, активно ли они используют код, который пытается очистить страницу, или просто не заботится о том, нарушают ли они код, который зависит от того, что они явно не документируют и, следовательно, меняют его, когда это удобно? – abarnert
@abarnert Извините, новичок здесь. И не слишком уверен в том, что вы имеете в виду со вторым комментарием. Я просто пытаюсь контролировать Hangouts с Python. Итак, если здесь нет обходного пути, и я решил использовать API-интерфейс Google Hangouts, как вы полагаете, мне нужно будет подписаться на Google Cloud (какой AFAIK не свободен после месяца), установить Google Cloud SDK и узнать о том, как использовать Google App Engine и т. д. или просто войти в мою учетную запись Google в каком-то браузере, достаточно для управления Hangouts с Python? –