Есть и другие вещи, о которых нужно позаботиться, пока вы моделируете действие в AUT. т.е. прядильщик и загрузчик. Таким образом, вы должны также справиться с этим.
Введите ExplicitWait
в свой код. Было замечено, что при нажатии на кнопку «Регистрация», он начинает показывать загрузчик, а затем отображает планы. Таким образом, обрабатывать этот код, указанный ниже, пока этот загрузчик не будет скрыт, а затем выполнить щелчок по нужному плану.
chrome.find_element_by_xpath('//*[@class="btn btn-default btn-short"]').click()
WebDriverWait(chrome, 20).until(EC.invisibility_of_element_located((By.ID, "redir"))
chrome.find_element_by_css_selector("div[aria-controls='plan-free']").click()
И при выполнении нажмите на кнопку Free Plan
, она перенаправит на новую страницу и покажет загрузку новой страницы, а затем загрузит форму регистрации. Для этого используйте приведенный ниже код -
WebDriverWait(chrome, 10).until( EC.invisibility_of_element_located((By.ID, "pm_slow"))
И имя пользователя в регистрационной форме загружается под iframe, поэтому вам нужно сначала переключиться на iframe, а затем выполнить дальнейшие действия
username_frame = chrome.find_element_by_xpath("//div[@class='usernameWrap']//iframe[@title='Registration form']")
chrome.switch_to.frame(username_frame)
WebDriverWait(chrome, 10).until( EC.visibility_of_element_located((By.ID, "username"))
chrome.find_element_by_id('username').send_keys(‘username’)
chrome.switch_to.default_content()
chrome.find_element_by_id("password").send_keys('password')
chrome.find_element_by_id("passwordc").send_keys('password')