Watir-WebDriver HTTP-код - PullRequest
       8

Watir-WebDriver HTTP-код

2 голосов
/ 09 ноября 2011

Так что я использую Watir WebDriver с Firefox и Chrome. Chrome намного быстрее, но, похоже, имеет ряд эксцентричностей. Во-первых, в Firefox, когда я использую что-то вроде:

ff.link(:text, "Click Here").exists?

Работает нормально. Однако в Chrome он часто останавливается, а затем завершается с исключением по таймауту. Так что я должен был сузить поиск в Chrome следующим образом:

linkDiv = ch.div(:class, "mydiv")
linkDiv.link(:text, "Click Here").exists?

Как правило, этот тип сокращения страницы до интересующего тега div работает просто отлично.

Однако в Chrome я заметил еще одну эксцентричность, которую я не заметил в Firefox. В Chrome я иногда получаю ошибку 15 - что-то вроде отсутствия ответа на сокете, но, поскольку он прерывистый, я не могу воспроизвести ошибку по желанию и еще не скопировал точный текст. Я не видел этого в Firefox - по крайней мере, пока - но, возможно, Chrome выдает мне ошибку, когда Firefox скрывает это.

Так что я хотел бы иметь возможность регистрировать, когда возникает эта ошибка, и лучшая идея, которую я имел до сих пор, - это использовать HTTP-коды - т.е. 200, 404, 500 и т. Д. Если код не равен 200, тогда запишите код и попробуйте еще раз.

Есть ли способ в Watir получить HTTP-код? Придя в Ruby из PHP / CURL, я предположил, что будет простой способ получить код HTTP - что-то вроде browser.http_code (где browser = Watir :: Browser.new: chrome, browser.goto (...)), но Я еще не нашел его, и мне не повезло найти выход в Интернете. «Решения», которые я нашел до сих пор, влекут за собой другие драгоценные камни, вызывающие страницу, чтобы получить возвращенный код. Тем не менее, поскольку эти страницы работают нормально 10 и более раз за каждый раз, когда я получаю эту ошибку, повторный вызов с другим гемом не помогает.

Спасибо


Мой обходной путь ...

Заголовок прерывистой страницы, на котором ничего нет, включает «недоступен» в конце строки browser.title. Поэтому я использую browser.title.include? "is not available" проверку, чтобы убедиться, что страница никогда не загружалась.

Это менее чем идеально по многим причинам, например, название может меняться с сайта на сайт или может меняться при обновлении Chrome. Где код состояния 200 всегда скажет мой код, что есть проблема ...

Полагаю, это что-то, что можно предложить разработчикам.

Еще раз спасибо

Ответы [ 2 ]

1 голос
/ 11 июля 2012

Вы не можете сделать это с Watir-Webdriver. Смотри https://stackoverflow.com/a/6512785/418107.

0 голосов
/ 09 ноября 2011

Вы пробовали?

browser.status

Другое дело было бы проверить его так, как его воспримет пользователь, просмотрев получившуюся страницу, проверив заголовок или текст, чтобы увидеть, указывает ли оношибка.

Если это не то, что вы ищете, вам нужно будет использовать гем уровня HTTP в дополнение к watir

См. этот вопрос и ответ на вопрос: Использование Watirпроверить плохие ссылки

...