Вопрос по webdriver – Очевидная причина для перехода с Selenium RC на Webdriver.

7

С прошлых 4 месяцев я делаю тестирование автоматизации, используяSelenium RC.

Но недавно я узнал, что Selenium RC устарела. Так много людей предложили мне перейти наSelenium Webdriver.

Итак, может ли кто-нибудь сказать мне, в чем проблема с Selenium RC и чем Webdriver лучше, чем RC ??

Спасибо.

Ваш Ответ

2   ответа
7

Что А.Дж. сказал.

Существуют ограничения на RC, которые не могут быть легко преодолены.

  1. The extendability is a great issue. I seriously can't stress that enough. When I expanded some of the RC methods to do more work they did normally, I bumped into a barrier that could not be passed easily. What could be done in RC with 750 lines of code and heavy use of the Command pattern, can be done in WebDriver with just a few simple methods.

  2. The same origin policy. It is a Javascript security policy that allows running the code only from the domain you're on. And since RC is fully written in Javascript, you can't easily switch between domains or work with some websites that redirect or use frames with content from many domains.

  3. Because of another security policy in Javascript, you can't fill in <input type='file' /> inputs and have to use several workarounds.

  4. You can't work well with onload Javascript modal dialogs. Those, again, have to be worked around.

    Selenium tries to conceal those dialogs from you (by replacing window.alert, window.confirm and window.prompt) so they won’t stop the execution of your page. If you’re seeing an alert pop-up, it’s probably because it fired during the page load process, which is usually too early for us to protect the page.

  5. You can't really maximize the window in RC :).

  6. You have to write your own methods when you need to wait for an element.

  7. RC is no longer developed, there will be nothing new. It took some time for WebDriver to catch on on all the features, but now the time has come that WebDriver finally can offer slightly more than RC (the waits and maximizing). And it will get only better!

  8. The RC's getEval() method is a poor cousin of WebDriver's executeJavascript(). The former returns a String and can't be given e.g. a specific page element. The latter one can return directly many in-built language data structures, WebElements, Lists, and can take those as arguments, too! That means that you can find an element with WebDriver and then run some JS on it. With RC, you would have to locate the element with JS, too. That can be done, but is harder and much more error-prone.

В основном это так. Существует также причина НЕ переключаться:WebDriver API молод и все еще меняется. Иногда, когда они исправляют ошибку, происходит небольшое изменение поведения. Поэтому иногда в заднице больно обновляться и обнаруживать, что она что-то сломала.

Тем не менее, я не вернусь к RC, так как с WebDriver так приятно работать. И я с нетерпением жду следующего года, когда, надеюсь, в WebDriver будут исправлены его самые досадные странности.

(также я добавил еще одну причину, которая была важна для меня на прошлой неделе)
Буду ли я сталкиваться с проблемой в будущем, если я продолжу этот селен RC? Ranadheer Reddy
Может быть. Возможно, нет. Если вы попытаетесь заставить методы RC выполнять больше работы за вас (например, не потерпеть неудачу на невидимых элементах, а пропустить их полностью), вам будет труднее реализовать его. Если вы когда-нибудь будете работать с сайтом, который перенаправляет на другие сайты. Если вам когда-нибудь понадобится получить текстonload JS оповещение. Если вам что-то понадобится, WebDriver еще не принес и не поддержал. Selenium RC довольно полный и надежный и может быть достаточно для вас. То, что работает сейчас, продолжит работать в будущем. Но многие проблемы просто преодолеть с помощью WebDriver ...
13

Ну, есть несколько причин. Вот несколько в произвольном порядке

  1. Webdriver offers a cleaner API than selenium RC. The most common example is you have selenium.type and selenium.typeKeys, both does the same thing in effect. Webdriver offers just one method sendKeys for all type related action. In short you can say, webdriver classes are better organized?

  2. Selenium works using javascript injection. If you have worked with selenium for sometime, then you must be aware of the same origin policy issues and limitations of javascript injection. Webdriver overcomes this by using a driver for each browser. For firefox this means, webdriver attaches itself to browser as an addon, for IE it uses automation atoms and for chrome and opera it uses the chrome driver.

  3. Due to the above mentioned reason, webdriver tests are faster than Selenium

  4. Its much easier to extend webdriver compared to selenium. Webdriver provides extendable action classes which you can combine and create your own customized actions.

  5. Webdriver can support testing in mobile devices such as Iphone, ipad and android phones and tablets.

И последнее, но отнюдь не менее, в настоящее время в проекте селена не ведется никаких разработок. Все, что доступно сейчас, будет по-прежнему поддерживаться, но никаких новых методов или улучшений для селена не происходит. Проекты Selenium и Webdriver были объединены несколько лет назад и стали Selenium 2.0

Вы можете найти дополнительную информацию о webdriverВот и причина для слиянияВот

Да, WebDriver (Selenium 2) работает быстрее, чем Selenium RC (Selenium 1)
@FranzEbner Из моего личного опыта - да. Это быстрее, чем селен 1
Вы уверены, что WebDriver быстрее? Я думал, что пользователь как поведение имеет # 1 прио ...

Похожие вопросы