Сценарий
Given I navigate to the table menu
When I click the "Add" button
And I fill "First name" with "Bob"
And I fill "Last name" with "Dylan"
And I click the "Create" button
Then I should see a new entry with a name of "Bob Dylan"
Определения шагов
@step(u'I click the "(.*)" button')
def i_click_the_named_button(step, field):
button = world.browser.find_element_by_xpath('(//a[contains(text(),"{0}") and not(contains(@style, "display:none"))] | //input[@value="{0}" and not(contains(@style, "display:none"))] | //li[contains(text(), "{0}") and not(contains(@style, "display:none"))])[1]'.format(field))
button.click()
@step(u'I fill "(.*)" with "(.*)"')
def i_fill_in_field_with_value(step, field, value):
try:
label = world.browser.find_element_by_xpath('//label[contains(text(),"%s")]' % field)
id = label.get_attribute('for')
input = world.browser.find_element_by_id(id)
input.clear()
input.send_keys(value)
except:
input = world.browser.find_element_by_xpath('//input[@placeholder="%s"]' % field)
input.clear()
input.send_keys(value)
Ошибка
NoSuchElementException: Сообщение: u 'такого элемента нет (Информация о сеансе: chrome = 31.0.1650.63) (Информация о драйвере: chromedriver = 2.8.240825, платформа = Linux 3.8.0-34-generic x86_64)'
Описание
При нажатии кнопки «Создать» элемент div вставляется в DOM (через JavaScript), отображая поля «Имя» и «Фамилия». При запуске с видимым окном я вижу, что элемент div ненадолго появляется перед тем, как исчезнуть, что приведет к сбою шагов «Я заполняю ...».
Из того, что я читал, проблема с сохранением фокуса на вновь созданном элементе div?
Попытки решения
- ActionChains (world.browser) .move_to_element (кнопка) .click (). Perform ()
- world.browser.switchTo () и друзья
- world.browser.find_element (...). send_keys ("\ n")
- sleep_until, implicitly_wait и т. д.
Окружающая среда
- PyVirtualDisplay 0.1.2
- Селен 2.38.4
- Салат 0.2.19
- Python 2.7.4
- Lubuntu Linux 13.10
Исследования
Сохранение фокуса после открытия нового окна в Selenium IDE
Используя привязки Python, Selenium WebDriver щелкните ( ) иногда не работает.
Как переключиться в новое окно браузера, которое открывается после нажать на кнопку?
Selenium WebDriver ActionChains