Я хочу нажать кнопку «Создать учетную запись» в платформе робота на RIDE, используя следующие ключевые слова
Указанный выше локатор не найден на консоли отображается ошибка.
Сайт ссылка на сайт:
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>Не могли бы вы дать решение. Заранее спасибо.
Обновите вопрос этой информацией
@DebanjanB, обновлено успешно.
Какое исключение вы получаете в firefox?
Я хочу нажать кнопку «Создать учетную запись» с помощью фреймворка робота на RIDE from Automationpractice.com/…
Какая у вас версия geckodriver?
Если он работает в одном браузере, а не в другом, возможно, один просто работает быстрее другого. Вы пробовали подождать, пока кнопка станет видимой и / или кликабельной, прежде чем нажимать на нее?
@Sujit Помимо моего ответа, предложение Брайана Окли выглядит как потенциальное решение вашей проблемы
@ Pradeep hebbar, я хочу нажать кнопку «Создать учетную запись» в фреймворке робота на RIDE от Automationpractice.com/… на firefox.
@Todor, geckodriver-v0.20.1-win64
@Bryan Oakley, Спасибо за ответ. Я попробовал это с помощью ключевого слова "Подождите, пока элемент не станет видимым" и работает нормально для Google Chrome, а браузер Firefox не работает. Также обнаружил, что элемент id = SubmitCreate не отображается через 20 секунд. Код на RIDE: "Click Link class = login Подождать, пока элемент не станет видимым id = SubmitCreate 20s None Click Button id = SubmitCreate" кликабельное ключевое слово перед нажатием недоступно в Robot Framework. Спасибо.
Вы пытались захватить идентификаторы / xpaths с помощью Selenium IDE. Это плагин, доступный как для Chrome, так и для FireFox, и запуск одного и того же сценария должен давать одни и те же локаторы. Это способ узнать, есть ли какие-либо различия в структуре HTML в разных браузерах ».
@A. Kootstra, Спасибо за предложение. К сожалению, в разных браузерах нет различий в структуре HTML. Тот же идентификатор SubmitCreate находится в рекордере Selenium IDE. Более подробную информацию можно увидеть по этой ссылке: screencast.com/t/U03SUfwajDkS Это простая проблема, почему это не работает в браузере Firefox. Я также проверяю более старую версию браузера 52 и версию драйвера Gecko.

В соответствии с 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: выражение не может быть преобразовано для возврата указанного типа.
Перекрестная проверка одинарных / двойных кавычек
Для одинарной кавычки SyntaxError: выражение не является допустимым выражением. Для двойных кавычек TypeError: выражение не может быть преобразовано для возврата указанного типа. Подробнее по ссылке на видео: screencast.com/t/Kt9ymXpPRsw
В Robotframework кавычки вокруг значения локатора после идентификатора (xpath=) не нужны. Фактически они являются частью значения, что делает xpath недействительным (он будет передан в селен - "the_xpath"); их нужно удалить.
@Sujit Как сказал Тодор, это может быть именно то препятствие, с которым мы сталкиваемся, о котором я упоминал в своем предыдущем комментарии, как в Перекрестная проверка одинарных / двойных кавычек. Возможно, наш xpath безупречный.
@DebanjanB, Спасибо, еще перекрестно проверяю одинарные / двойные кавычки. К сожалению, ваш xpath не работает. Кнопка с указателем 'xpath: // button [@ class =' btn btn-default button button-medium exclusive 'и @ id =' SubmitCreate '] / span [contains (.,' Create an аккаунт не найден. Подробнее ссылка на видео: screencast.com/t/Rc6CXasVc
Попробуйте этот 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-адрес в пути получения и установки
Я считаю, что проблема в драйвере, а не в локаторе, потому что он дал три способа, которые он пробовал, в которых я не вижу никаких проблем для данной страницы.
После использования вышеупомянутой ошибки xpath обнаружена как кнопка с локатором 'xpath = // button [@ class =' btn btn-default button button-medium exclusive '] // following :: span [1]' не найдена.
Я не знаю, что xpath работает для меня, я также добавляю новый xpath, попробуйте, что
@ Rajagopalan Спасибо за ваше предложение. Не могли бы вы сообщить мне, какой тип проблемы с драйверами может возникнуть и каково решение в этом случае.
@ iamsankalp89, Спасибо, ваш XPath работает и тестовые случаи проходят. Но браузер не может нажать кнопку «Создать учетную запись». Более подробно можно увидеть по ссылке: screencast.com/t/uHoSRz5P6UZ
Хорошо, я постараюсь это посмотреть, а пока приму в качестве ответа
Попробуйте этот 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 Это не проблема с локатором. Проблема с версией браузера. Я использовал FireFox версии 56.0 и драйвер любого geckodriver от v0.18.0 до v0.20.1. Эта конфигурация отлично работает на моем сайте.
Вы можете попробовать с этой конфигурацией. Это может быть вам полезно.
Спасибо за отличный анализ версии драйверов FireFox и gecko.
Я также использую следующую платформу роботов. Ключевое слово Click Button id = SubmitCreate Click Button class = btn btn-default button button-medium эксклюзивная Click Button xpath = // * [@ id = "SubmitCreate"] Указанный выше указатель не найден в ошибке консоли отображается.