Как нажать кнопку входа?

Я не могу получить код для нажатия кнопки «Войти в Facebook», безуспешно пытался:

Ссылка

wait.until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/div[1]/div[1]/div[2]/div[1]/div[2]/ div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/span[1]/div[1]/div[1]/div[1]" ))).click()
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
61
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте использовать относительный XPATH вместо полного XPATH, это будет точнее.

Или, если возможно, попробуйте поделиться скриншотом элемента, к которому вы пытаетесь получить доступ.

Я нашел этот XPATH. Надеюсь, это сработает.

driver.find_element(By.XPATH,"//form[@class='_9vtf']/div[2]/button").click()
Ответ принят как подходящий

Вы никогда не должны использовать длинные абсолютные XPath или селекторы CSS. Локаторы должны быть короткими и уникальными.
Работает следующий код:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument("start-maximized")

webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(service=webdriver_service, options=options)

url = 'https://business.facebook.com/creatorstudio/home'
driver.get(url)
wait = WebDriverWait(driver, 20)

wait.until(EC.element_to_be_clickable((By.XPATH, "//div[contains(text(),'Facebook login')]"))).click()
wait.until(EC.element_to_be_clickable((By.ID, "email"))).send_keys("[email protected]")
wait.until(EC.element_to_be_clickable((By.ID, "pass"))).send_keys("my_psw")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[name='login']"))).click()

UPD
Вместо "//div[contains(text(),'Entrar no Facebook')]" попробуйте "//font[contains(text(),'entrar no Facebook')]" - первое слово не с большой буквы и тег font вместо div. Вот что я вижу, когда перевожу на португальский

ошибка: prnt.sc/uMo4nCs55LJ-

Felipe 31.12.2022 18:56

Я не уверен, что вы использовали правильный Xpath в первой строке...

Prophet 31.12.2022 18:58

Я использовал оба XPATH, тот, что на изображении ниже, это то, что вы предложили prnt.sc/RrFLEwGUF_KD он не отображается на странице prnt.sc/qOuqtWd9Doco

Felipe 31.12.2022 19:04

Я понимаю. это потому, что ваш компьютер использует другой язык. Однако я не могу проверить правильность используемого вами XPath, так как мой компьютер использует английский язык.

Prophet 31.12.2022 19:06

Другие вопросы по теме