Невозможно найти кнопку «Создать запись» в блоггере - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь автоматизировать публикацию в блоге, используя селен и питон

Возможность найти элемент с помощью элемента Inspect в браузере


import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys



browser = webdriver.Firefox()
browser.get('https://www.blogger.com/go/signin')
email = browser.find_element_by_id('identifierId')
email.send_keys("xxxxxx@gmail.com")
email.send_keys(Keys.RETURN)
time.sleep(5)
password = browser.find_element_by_name("password")
password.send_keys("xxxxxx")
password.send_keys(Keys.RETURN)
time.sleep(5)

newpost = browser.find_element_by_partial_link_text("editor")

posttitle = browser.find_element_by_name("K3JSBVB-C-b titleField textField K3JSBVB-C-a")

error

Невозможно найти элемент: [name = "K3JSBVB-Cb titleField textField K3JSBVB-Ca"]

1 Ответ

0 голосов
/ 24 июня 2019

Этот K3JSBVB-C-b атрибут класса выглядит динамично, я бы предпочел вместо этого придерживаться текста New post.

Соответствующее выражение XPath будет выглядеть примерно так:

//a[text()='New post']

enter image description here

Также рассмотрите возможность использования Явное ожидание , поскольку использование сна является антипаттерном, которого следует избегать

new_post = WebDriverWait(browser, 10).until(
    expected_conditions.element_to_be_clickable(By.XPATH("//a[text()='New post']")))
new_post.click()

Дополнительная информация: Как использовать Selenium для тестирования веб-приложений с использованием технологии AJAX

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