Добрый день!
По своему желанию осваиваю автоматизацию тестирования. Тестирую проект, на котором столкнулся с проблемой. Возможно ее решение где-то уже всплывало на форуме. Не серчайте сильно.
Суть проблемы. Я хочу совершить переход в личный кабинет, но не получается совершить клик и выбор пункта “View Profile”.
Селектом выбрать не получается. По виду выпадающий список напоминает тултип.
Добрый день!
Проблему не получилось решить. Такое впечатление, что даже первый клик на иконку с пользователем не происходит.
Ниже код теста и stacktrace
from selenium import webdriver
import unittest, os
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
class Test1(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.set_window_size(1920, 1080)
self.driver.implicitly_wait(30)
self.base_url = "https://test.com/"
self.verificationErrors = []
self.accept_next_alert = True
def test_1(self):
#Open page and authorization
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_xpath("//a[@href='http://app.test.com/login']").click()
driver.find_element_by_xpath("//input[@name='login']").clear()
driver.find_element_by_xpath("//input[@name='login']").send_keys("test@test.ru")
driver.find_element_by_xpath("//input[@name='password']").clear()
driver.find_element_by_xpath("//input[@name='password']").send_keys("123456")
driver.find_element_by_xpath("//button[@type='submit']").click()
#Find element in tooltip and click
driver.find_element_by_css_selector("p.name").click()
wait = WebDriverWait(driver, 10)
profile = wait.until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, 'View Profile')))
profile.click()
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
======================================================================
ERROR: test_1 (__main__.Test1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:/Test/LK/test1.py", line 32, in test_1
profile = wait.until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, 'View Profile')))
File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
----------------------------------------------------------------------
Ran 1 test in 41.446s
FAILED (errors=1)
Ну так может, это и проверить в режиме дебаггера (по шагам)? Скорее всего клик-то проходит, только не потому элементу, которому нужно. Нужно проверить селектор
После клика на “p.name” поставь большой слип на 20 секунд.
И смотри визуально - появился ли “View profile”.
Самый легкий способ “дебаггинга”)))
Ну или прикрутить создание скриншотов после фейла. И смотреть скрины.