t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не завершается тест pythone+selenium-webdriver

Теги: #<Tag:0x00007f9afc883e40> #<Tag:0x00007f9afc883c60> #<Tag:0x00007f9afc883b98>

В общем, уже в конце после нажатия на кнопку “create-account”, происходит переход на страницу с текcтом подтверждения, на этой странице нужно найти кнопку “button”, и она ни как не находится. Ни каким способом, явными и не явными ожиданиями. Еще хочу заасертить урлы. Посмотри пожалуйста в чем может быть проблема. И вообще можно маленькое ревью сделать, что лучше поменять или изменить в коде? Спасибо!

from core.settings import *


class Regestration (unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome(chromedriver)

    def test_UserRegistrationGetPage(self):
        driver = self.driver
        driver.get(regestrationpage)
        regestrationpageStatus = requests.get(regestrationpage)
        print(regestrationpageStatus)
        name = driver.find_element_by_class_name("name")
        name.send_keys(username)
        userEmail = driver.find_element_by_class_name("email")
        userEmail.send_keys(useremail)
        password = driver.find_element_by_class_name("password")
        password.send_keys(userpassword)
        confirmPassword = driver.find_element_by_class_name("confirm-password")
        confirmPassword.send_keys(userpassword)
        buisnesList = driver.find_element_by_xpath("//li[6]/div/div/div/div").click()
        buisnesType = driver.find_element_by_xpath("//li[6]/div/div/div[2]/ul/li[2]").click()
        newAccButton = driver.find_element_by_class_name("create-account")
        newAccButton.click()
        pageLoad = WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.CSS_SELECTOR, "button")))
        self.assertIn(approvepage, self.driver.current_url)

if __name__ == '__main__':
    unittest.main()

Страница открывается в том же окне?
На странице есть iframe?

Страница открывается в том же окне, iframe - нет

А ajax там случаем нету? Можно код страницы посмотреть?

Скинул body

Там есть скрипты но они не блокирующие. Можете поревьюить код теста? или на основе body предложить решение. Вот этот код боди это то что я получаю в результате после нажатия кнопки регистрации, меня кидаеи на страницу с этим боди.

<body>
  <div class="system-notification"></div>

  <div id="i-page" class="page page2 ">
    <div class="page-block" id="page_block_header">
      <div class="color-overlay"></div>
      <div class="border-holder">
        <div class="block-inner">
          <div class="page-element widget-container page-element-type-headline widget-headline " id="element-2">
            <div class="contents">
              <h1>
                <p style="text-align: center;"><b>Please check your mailbox to activate the account!</b></p>
              </h1>
            </div>
          </div>
          <div class="page-element widget-container page-element-type-text widget-text " id="element-3">
            <div class="contents">
              <p style="text-align: justify;"><span>To complete the process, please check your email for a message from us. Simply click on the link to activate your account.
                </span>
              </p>
              <p style="text-align: justify;"><span><br></span></p>
              <p style="text-align: justify;"><span></span></p>
              <p style="text-align: justify;  ">If the email doesn't appear in your inbox within a few minutes, check your spam folder. Some anti-spam filters modify the email, so be sure to move the message to your inbox before clicking the link.<br></p>
              <p style="text-align: justify;"><span><br></span></p>
              <p>
                <button class="button_1 login-btn resend-mail">Resend mail</button>
                <button class="button_1 login-btn spinner-button hidden">
                  <div class="Spinner Spinner--inverted Spinner--md">
                    <span class="Spinner_dot Spinner_dot--first"></span>
                    <span class="Spinner_dot Spinner_dot--second"></span>
                    <span class="Spinner_dot Spinner_dot--third"></span>
                  </div>
                </button>
              </p>
            </div>
          </div>
          <div class="page-element widget-container page-element-type-image widget-image " id="element-124">
            <div class="contents">
              <div class="cropped" alt=""></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

Я так понял вы эту кнопку имели в виду:

<button class="button_1 login-btn resend-mail">Resend mail</button>

Попробуйте по xpath найти кнопку с классом resend-mail

вот не находит его, стоить ожидание, проход время и тест падает, ошибка в том что не находит элемент

А руками если делать все ок?

Проблему решил поиском по Xpath. Спасибо!