Проверьте, виден ли текст с помощью Selenium, Python - PullRequest
1 голос
/ 03 мая 2020

Я делаю скрипт, который будет заполнять формы для создания учетной записи Gmail с Python. Когда имя пользователя уже используется, сообщение становится видимым. В голландском: "Dez gebruikersnaam худший аль-gebruikt. Probeer был andere gebruikersnaam". Чтобы справиться с этим, мне нужно определить, когда это сообщение видно, но я понятия не имею, как это сделать. Если кто-то может помочь, это было бы удивительно

enter image description here

1 Ответ

1 голос
/ 04 мая 2020

Попробуйте это код :

from selenium import webdriver
import time

path = '/home/avionerman/Documents/stack'
driver = webdriver.Firefox(path)

driver.get('https://www.google.com/intl/nl/gmail/about/#')

try:
    print('locating create account button')
    create_account_button = driver.find_element_by_class_name('h-c-button')
except:
    print("error, couldn't find create account button")
try:
    create_account_button.click()
    print('navigating to creation page')
except:
    print('error navigating to creation page')
time.sleep(8)


handles = driver.window_handles
size = len(handles)

driver.switch_to.window(handles[1])
print(driver.title)



first_name_input = driver.find_element_by_id('firstName')
first_name_input.click()
first_name_input.send_keys("WhateverYouWant")

last_name_input = driver.find_element_by_id('lastName')
last_name_input.click()
last_name_input.send_keys("WhateverYouWant2")

username_input = driver.find_element_by_id('username')
username_input.click()
username_input.send_keys('papadopoulos')

pswd_input = driver.find_element_by_name('Passwd')
pswd_input.click()
pswd_input.send_keys('whateveryouwant')

pswd_conf_input = driver.find_element_by_name('ConfirmPasswd')
pswd_conf_input.click()
pswd_conf_input.send_keys('whateveryouwant')

next_button = driver.find_element_by_id("accountDetailsNext")
next_button.click()


# In the variable x I save the text that is included inside the specific xpath
x = driver.find_element_by_xpath("//*[@id='view_container']/form/div[2]/div/div[1]/div[2]/div[1]/div/div[2]/div[2]/div").text
print(x)

# I assert in order to check if the variable x has the proper text value (the expected one)
assert x == 'Dez gebruikersnaam worst al gebruikt. Probeer been andere gebruikersnaam.'


time.sleep(10)

Таким образом, если подтверждение проходит, вы видите предупреждение, а в любом другом случае имя пользователя для почты уникально. Итак, часть кода, которую я вам написал, вы можете вставить его в операторы if и справиться с ним так же, как вы sh. Если вам нужна дополнительная информация, не стесняйтесь пинговать меня.

...