Selenium Click проблема - PullRequest
       28

Selenium Click проблема

0 голосов
/ 31 января 2020

Последняя строка в коде ниже не выполняет щелчок.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path=r"C:\Users\SohaibWaseem\PycharmProjects\chromedriver.exe")
driver.get("https://www.facebook.com/")
user_name = driver.find_element_by_name("email") ###... checking user name or email box is available in page
print(user_name.is_displayed())      ### ... return true false of the status
print(user_name.is_enabled())        ### ... return true false of the status
pass_word = driver.find_element_by_name("pass")
print(pass_word.is_displayed())      ### ... return true false of the status
print(pass_word.is_enabled())        ### ... return true false of the status
user_name.send_keys("asdf")
pass_word.send_keys("asdf")
driver.find_element_by_xpath("Log In").click()

Ответы [ 3 ]

1 голос
/ 31 января 2020

Кнопка xpath for Login, на которую вы нацеливаетесь, должна быть //input[@id="u_0_b"], а не Log In Теперь ваша последняя строка в приведенном выше коде будет выглядеть следующим образом:

driver.find_element_by_xpath("//input[@id="u_0_b"]").click()

0 голосов
/ 01 февраля 2020

большое спасибо, теперь у меня есть еще одна ошибка 1003 *

from selenium.webdriver.common.keys import Keys

import time

driver = webdriver.Chrome(executable_path=r"C:\Users\Sohaib 
Waseem\PycharmProjects\chromedriver.exe")

driver.get("https://www.facebook.com/")

user_name = driver.find_element_by_name("email") 
print(user_name.is_displayed())     
print(user_name.is_enabled())        

pass_word = driver.find_element_by_name("pass")
print(pass_word.is_displayed())      
print(pass_word.is_enabled())        

user_name.send_keys("asdf")
pass_word.send_keys("asdf")

driver.find_element_by_id("loginbutton").click()

time.sleep(2)

driver.back()
user_name.send_keys("my.email@gmail.com")
pass_word.send_keys("My password")

driver.find_element_by_id("loginbutton").click()

'' '

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

0 голосов
/ 31 января 2020

Xpath вы используете для нажатия кнопки входа в систему, не похоже на xpath. ID - это dynamic для кнопки входа в систему и тот же формат ID, используемый для других inputs field на странице, поэтому partial ID match не будет работать.

вы можете использовать CSS или Xpath с помощью атрибута data-testid.

CSS

driver.find_element_by_css_selector("input[data-testid='royal_login_button']").click()

Xpath

driver.find_element_by_xpath("//input[@data-testid='royal_login_button']").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...