Локатор не найден на платформе робота для Click Button

Я хочу нажать кнопку «Создать учетную запись» в платформе робота на RIDE, используя следующие ключевые слова

  1. Нажмите кнопку id = SubmitCreate
  2. Click Button class = btn btn-default button button-medium эксклюзивный
  3. Нажмите кнопку xpath = // * [@ id = "SubmitCreate"]

Указанный выше локатор не найден на консоли отображается ошибка.

Сайт ссылка на сайт:

http://automationpractice.com/index.php?controller=authentication&back=my-account

Примечание: те же скрипты работают и в браузере Google Chrome. Он не работает в браузере Firefox (версия: 59.0.3).

Детали тега:

<button class = "btn btn-default button button-medium exclusive" type = "submit" id = "SubmitCreate" name = "SubmitCreate">
							<span>
								<i class = "icon-user left"></i>
								Create an account
							</span>
						</button>

Не могли бы вы дать решение. Заранее спасибо.

Я также использую следующую платформу роботов. Ключевое слово Click Button id = SubmitCreate Click Button class = btn btn-default button button-medium эксклюзивная Click Button xpath = // * [@ id = "SubmitCreate"] Указанный выше указатель не найден в ошибке консоли отображается.

Sujit 10.05.2018 07:27

Обновите вопрос этой информацией

DebanjanB 10.05.2018 07:40

@DebanjanB, обновлено успешно.

Sujit 10.05.2018 07:53

Какое исключение вы получаете в firefox?

Pradeep hebbar 10.05.2018 08:00

Я хочу нажать кнопку «Создать учетную запись» с помощью фреймворка робота на RIDE from Automationpractice.com/…

Sujit 10.05.2018 08:06

Какая у вас версия geckodriver?

Todor Minakov 10.05.2018 10:19

Если он работает в одном браузере, а не в другом, возможно, один просто работает быстрее другого. Вы пробовали подождать, пока кнопка станет видимой и / или кликабельной, прежде чем нажимать на нее?

Bryan Oakley 10.05.2018 14:03

@Sujit Помимо моего ответа, предложение Брайана Окли выглядит как потенциальное решение вашей проблемы

DebanjanB 10.05.2018 14:09

@ Pradeep hebbar, я хочу нажать кнопку «Создать учетную запись» в фреймворке робота на RIDE от Automationpractice.com/… на firefox.

Sujit 10.05.2018 18:54

@Todor, geckodriver-v0.20.1-win64

Sujit 10.05.2018 18:59

@Bryan Oakley, Спасибо за ответ. Я попробовал это с помощью ключевого слова "Подождите, пока элемент не станет видимым" и работает нормально для Google Chrome, а браузер Firefox не работает. Также обнаружил, что элемент id = SubmitCreate не отображается через 20 секунд. Код на RIDE: "Click Link class = login Подождать, пока элемент не станет видимым id = SubmitCreate 20s None Click Button id = SubmitCreate" кликабельное ключевое слово перед нажатием недоступно в Robot Framework. Спасибо.

Sujit 10.05.2018 20:13

Вы пытались захватить идентификаторы / xpaths с помощью Selenium IDE. Это плагин, доступный как для Chrome, так и для FireFox, и запуск одного и того же сценария должен давать одни и те же локаторы. Это способ узнать, есть ли какие-либо различия в структуре HTML в разных браузерах ».

A. Kootstra 11.05.2018 22:05

@A. Kootstra, Спасибо за предложение. К сожалению, в разных браузерах нет различий в структуре HTML. Тот же идентификатор SubmitCreate находится в рекордере Selenium IDE. Более подробную информацию можно увидеть по этой ссылке: screencast.com/t/U03SUfwajDkS Это простая проблема, почему это не работает в браузере Firefox. Я также проверяю более старую версию браузера 52 и версию драйвера Gecko.

Sujit 12.05.2018 05:46
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
13
2 363
4

Ответы 4

В соответствии с HTML-кодом, которым вы поделились, вы можете использовать следующий Стратегия поиска:

Click Button xpath = "//button[@class='btn btn-default button button-medium exclusive' and @id='SubmitCreate']/span[contains(.,'Create an account')]"

Сообщение: данное выражение xpath "" // button [@ class = 'btn btn-default button button-medium exclusive' и @ id = 'SubmitCreate'] / span [contains (., 'Create an account')] "" равно invalid: TypeError: выражение не может быть преобразовано для возврата указанного типа.

Sujit 10.05.2018 08:09

Перекрестная проверка одинарных / двойных кавычек

DebanjanB 10.05.2018 08:11

Для одинарной кавычки SyntaxError: выражение не является допустимым выражением. Для двойных кавычек TypeError: выражение не может быть преобразовано для возврата указанного типа. Подробнее по ссылке на видео: screencast.com/t/Kt9ymXpPRsw

Sujit 10.05.2018 08:40

В Robotframework кавычки вокруг значения локатора после идентификатора (xpath=) не нужны. Фактически они являются частью значения, что делает xpath недействительным (он будет передан в селен - "the_xpath"); их нужно удалить.

Todor Minakov 10.05.2018 10:17

@Sujit Как сказал Тодор, это может быть именно то препятствие, с которым мы сталкиваемся, о котором я упоминал в своем предыдущем комментарии, как в Перекрестная проверка одинарных / двойных кавычек. Возможно, наш xpath безупречный.

DebanjanB 10.05.2018 10:20

@DebanjanB, Спасибо, еще перекрестно проверяю одинарные / двойные кавычки. К сожалению, ваш xpath не работает. Кнопка с указателем 'xpath: // button [@ class =' ​​btn btn-default button button-medium exclusive 'и @ id =' SubmitCreate '] / span [contains (.,' Create an аккаунт не найден. Подробнее ссылка на видео: screencast.com/t/Rc6CXasVc

Sujit 10.05.2018 21:19

Попробуйте этот xpath

//button[@class='btn btn-default button button-medium exclusive']//following::span[1]

Попробуйте и этот xpath

 //button[@type='submit' and @name='SubmitCreate']

Как это

driver.findElement(By.xpath("//button[@class='btn btn-default button button-medium exclusive']//following::span[1]")).click();

Полный код выглядит так:

// Открываем браузер

System.setProperty("webdriver.gecko.driver", "C:/Users/sankalp.gupta/Desktop/JAVASELN/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("file:///C:/Sankalp/test.html");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.xpath("//button[@type='submit' and @name='SubmitCreate']")).click();

Попробуйте передать свой URL-адрес в пути получения и установки

iamsankalp89 10.05.2018 08:16

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

Rajagopalan 10.05.2018 08:17

После использования вышеупомянутой ошибки xpath обнаружена как кнопка с локатором 'xpath = // button [@ class =' ​​btn btn-default button button-medium exclusive '] // following :: span [1]' не найдена.

Sujit 10.05.2018 08:49

Я не знаю, что xpath работает для меня, я также добавляю новый xpath, попробуйте, что

iamsankalp89 10.05.2018 09:20

@ Rajagopalan Спасибо за ваше предложение. Не могли бы вы сообщить мне, какой тип проблемы с драйверами может возникнуть и каково решение в этом случае.

Sujit 10.05.2018 18:49

@ iamsankalp89, Спасибо, ваш XPath работает и тестовые случаи проходят. Но браузер не может нажать кнопку «Создать учетную запись». Более подробно можно увидеть по ссылке: screencast.com/t/uHoSRz5P6UZ

Sujit 10.05.2018 21:36

Хорошо, я постараюсь это посмотреть, а пока приму в качестве ответа

iamsankalp89 14.05.2018 07:09

Попробуйте этот Xpath, я проверил это со своей стороны, и он работает нормально:

//input[@name='back']/following-sibling::button[@name='SubmitCreate']

В код вы можете использовать это так:

public static void main(String[] args) throws InterruptedException {

            System.setProperty("webdriver.gecko.driver", "F:\\Automation\\geckodriver.exe");
            driver = new FirefoxDriver();
            driver.manage().window().maximize();
            driver.get("http://automationpractice.com/index.php?controller=authentication&back=my-account");
            WebDriverWait wait = new WebDriverWait(driver, 10);
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='back']/following-sibling::button[@name='SubmitCreate']")));
            driver.findElement(By.xpath("//input[@name='back']/following-sibling::button[@name='SubmitCreate']")).click();      
    }

Код на RIDE: ### Щелкните ссылку class = login Подождите, пока элемент не станет видимым xpath: // input [@ name = 'back'] / following-sibling :: butto‌ n [@ name = 'SubmitCreat‌ e'] Нет Нет Нажмите кнопку xpath: // input [@ name = 'back'] / following-sibling :: button‌ [@ name = 'SubmitCreate‌'] ## После использования xpath обнаружена ошибка. Элемент 'xpath: // input [@ name =' back '] / following-sibling :: button [@ name‌ =' SubmitCreate ']' не отображается через 5 секунд. Ссылка для дополнительных сведений: screencast.com/t/uOfsyBes

Sujit 10.05.2018 20:52

@Sujit Это не проблема с локатором. Проблема с версией браузера. Я использовал FireFox версии 56.0 и драйвер любого geckodriver от v0.18.0 до v0.20.1. Эта конфигурация отлично работает на моем сайте.

Вы можете попробовать с этой конфигурацией. Это может быть вам полезно.

Спасибо за отличный анализ версии драйверов FireFox и gecko.

Sujit 13.05.2018 11:32

Другие вопросы по теме