Я пишу некоторые тесты для моего сайта с помощью WebdriverIO рядом Мокко/Chai, но когда я делаю это:Должен ли я всегда ждать, прежде чем нажимать?
it('select application', function(done) {
client
.click('.disciplinetext > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(3) > button:nth-child(1)')
// more stuff
Элемент еще не существует (не был вынесен). Должно ли .click()
неявно ждать завершения загрузки страницы, прежде чем она попытается щелкнуть элемент?
Он отлично работает, если я хлопнуть эту строку перед ней:
.waitFor('.disciplinetext > table:nth-child(7) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(3) > button:nth-child(1)',1000)
Но я не хочу, чтобы бросить waitFor
перед каждым .setValue()
, .click()
, .getText()
, или любой другой API command. Я что-то упускаю?
Есть ли команда, ожидающая загрузки всей страницы, или параметр, чтобы неявно ждать до доступа к элементу?
'.click'" будет "неявно ждать загрузки страницы, прежде чем работать с элементом. Этот элемент добавляется к DOM через ajax? – sircapsalot
@sircapsalot: Нет, он находится в источнике страницы Ctrl + U при загрузке страницы. – mpen
Может быть, второй комментарий в этом обсуждении (https://groups.google.com/forum/#!topic/webdriver/8n55XfpDSGo) будет полезен. FYI, существует реализация 'implicitWait' в связываниях Java, Python, Ruby для webdriver selenium. – Amey