Python Кнопка Селена в пределах класса - PullRequest
0 голосов
/ 28 марта 2020

Login_Via_Email_Button

На изображении выше я пытаюсь нажать кнопку «Продолжить с электронной почтой». Вот код, который у меня есть:

from selenium import webdriver

Driver = webdriver.Firefox() #Define webdriver to use
Driver.get('https://www.airbnb.co.uk/login')
Element = Driver.find_element_by_xpath("//div[contains(@class,'_p03egf') and (@class, '_18m31f1b')]")
Element.click

Либо мой синтаксис неверен, либо мое плохое понимание веб-страниц подводит меня

Любая помощь - высоко ценится

Спасибо Rob

Ответы [ 4 ]

1 голос
/ 28 марта 2020

Вы можете использовать приведенные ниже решения, если вы хотите нажать на Продолжить с электронной почтой кнопка:

- XPATH

Пример 1

wait = WebDriverWait(Driver, 30)
     wait.until(EC.presence_of_element_located((By.XPATH, "//div[contains(text(),'Continue with email')]"))).click()

Пример 2

wait = WebDriverWait(Driver, 30)
     wait.until(EC.presence_of_element_located((By.XPATH, "//div[@class='_bc4egv gs_copied']"))).click()

- CSS Селектор

 wait = WebDriverWait(Driver, 30)
     wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".\_18m31f1b:nth-child(1) .\_bc4egv"))).click()

Не забудьте добавить ниже импорт

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
1 голос
/ 28 марта 2020

Я думаю, что ваш XPath отключен, из приведенного вами примера я бы предположил, что вы хотите что-то вроде этого:

Element = Driver.find_element_by_xpath("//button[@data-testid='social-auth-button-email']")

w3schools.com имеет большое руководство по синтаксису XPath

0 голосов
/ 28 марта 2020
find_elements_by_class_name('_18m31f1b').click()

Этого должно быть достаточно, чтобы сделать то, что вы хотите, так как кнопка, кажется, подключена к этому классу, и все, что вы хотите сделать, это нажать на нее.

0 голосов
/ 28 марта 2020

Можете ли вы попробовать этот код

Element = Driver.find_element_by_xpath('//*[@id="site-content"]/div/div/div/div/div/div/div/div[2]/button')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...