Мой код написан на Java.selenium - нажав на кнопку радио, созданный javascript
У меня есть набор переключателей, которые динамически генерируются javascript. Я хочу нажать на один из них.
Я использую xpath, но он не работает. Это говорит
Исключение в потоке «основного» org.openqa.selenium.NoSuchElementException: Не удалось найти элемент:
Я попробовал оба метода DeliveryType ниже, после того, как я «Осмотреть элементы» на Google хром.
//WebElement deliveryType = driver.findElement(By.xpath("//div[contains(@id, 'checkout-shipping-method-load')]//*[contains(@name, 'shipping_method')]"));
//WebElement deliveryType = driver.findElement(By.cssSelector("[name='shipping_method'][id='s_method_matrixrate_matrixrate_5983']"));
//deliveryType.click();
Ниже приведено проверочное устройство для этой кнопки.
<div id="checkout-shipping-method-load">
<dl class="sp-methods">
<dt>Select Shipping Method</dt>
<dd>
<ul>
<li>
<input name="shipping_method" type="radio" value="matrixrate_matrixrate_5983" id="s_method_matrixrate_matrixrate_5983" class="radio validation-passed">
<label for="s_method_matrixrate_matrixrate_5983">Standard Shipping<span class="price">NT$300</span></label></li>
<li>
<input name="shipping_method" type="radio" value="matrixrate_matrixrate_5991" id="s_method_matrixrate_matrixrate_5991" class="radio validation-passed">
<label for="s_method_matrixrate_matrixrate_5991">Express Shipping<span class="price">NT$1,200</span></label></li>
</ul>
</dd>
</dl>
</div>
Я попытался запрограммировать свой сценарий, чтобы щелкнуть по нему. Я попробовал свой xpath, чтобы следовать «проверять элемент» и «просмотреть источник страницы». Оба дают мне ту же ошибку, что и такой элемент не найден.
Как мне настроить сценарий селена на один из переключателей, которые динамически генерируются javascript?
Мое xpath должно указывать на необработанное кодирование javascript или html, сгенерированное javascript после загрузки окна?
Пожалуйста, помогите мне.
Закрыто: Я использовал неявным Подождите ждать моего JavaScript для запуска и загрузить мой HTML. После загрузки я использовал List для хранения всех моих переключателей. Из списка я получаю его по индексу.
Благодаря Girish Sortur & JeffC.
Ниже приведен мой код.
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
List<WebElement> methods = driver.findElements(By.cssSelector("input[name='shipping_method']"));
methods.get(0).click();
Pls прочитать: http://stackoverflow.com/help/how-to-ask и редактировать свой ответ соответственно, никто не может помочь вам без вас обеспечивая некоторый код, который вы пытались и не – drkthng
Пожалуйста, обеспечивают код, с которым вы пытались и не справились. Однако, исходя из моих знаний, я дал ответ. Надеюсь, поможет. –