Selenium начинающий вопрос - PullRequest
1 голос
/ 20 июля 2011

Я просто пытаюсь понять и изучить селен. Я использовал IDE для записи своих действий и пытался воспроизвести, но я застрял на первом шаге.

Я пытаюсь войти на наш внутренний сайт, а затем нажать на строку меню, чтобы перейти на внутреннюю страницу. Selenium входит в систему, но завершается неудачно при клике с сообщением об ошибке -

[error] Element css=#ui-active-menuitem > span.wijmo-wijmenu-text > span.wijmo-wijmenu-text not found

Этот сайт создан с использованием Primeface, и когда я вижу исходный код, строка, которая генерирует ошибку, выглядит примерно так:

<div align="left" class="container"><div id="menu"><ul id="menu_menu"><li><a href="javascript:void(0)">
<span class="wijmo-wijmenu-text">Home</span></a><ul><li><a href="home">home</a></li></ul>
 </li><li><a href="javascript:void(0)"><span class="wijmo-wijmenu-text">Tills</span></a><ul>
 <li><a href="tills">Manage</a>........

Здесь я должен сказать, что пока я не нажимаю на пункт меню выше, я могу запускать все тесты через Selenium ID, но для входа на внутренние страницы необходимо щелкнуть меню выше после входа в систему.

Вы помогаете / руководство очень ценится.

Спасибо

Ответы [ 4 ]

1 голос
/ 16 августа 2011

Возможно, элемент не найден только потому, что он еще не загружен. После входа в систему вы можете попробовать использовать команду waitForElementPresent и затем нажмите на элемент. Кажется, вы ссылаетесь на элемент по css, вы можете попробовать идентификатор или имя

1 голос
/ 28 июля 2011

Я тоже начинаю и у меня такая же проблема. Эти команды работают для меня:

Clik ссылка = название_меню

clickAndWait ссылка = subMenuName

Надеюсь, это поможет.

0 голосов
/ 22 февраля 2019

Добавьте ожидание и никогда не пытайтесь изучать селен через IDE.Недостатки использования IDE в том, что вы не можете добавлять условия, циклы и ожидания в своем коде и не можете поддерживать платформу.

0 голосов
/ 26 апреля 2016

Думаю перед появлением меню Selenium пытаюсь нажать. Просто используйте

Thread.sleep(5000); // for five second waiting or more you can use

Другой способ использования -

WebDriverWait wait = new WebDriverWait (driver, 30); // maximum wait 30     seconds
wait.until(ExpectedConitions.PresenceofElement(By.id("Menu_id"))).click();
...