Как нажать кнопку с помощью Selenium, с помощью текста или значения?

#c# #selenium

#c# #селен

Вопрос:

Я хочу добиться нажатия кнопки HTML, прочитав ее значение или внутренний текст в C # Selenium, ни один из методов щелчка, похоже, не работает, не знаю почему?

Мне было интересно, возможно ли это, если да, пожалуйста, сообщите, что мой код приведен ниже.

Html ниже

 <div class="a-button-stack">
<span class="a-declarative" data-action="dp-pre-atc-declarative" data-dp-pre-atc-declarative="{}" id="atc-declarative">
<span id="submit.add-to-cart-ubb" class="a-button a-spacing-small a-button-primary a-button-icon">
<span class="a-button-inner">
<i class="a-icon a-icon-cart"></i><input id="add-to-cart-button-ubb" name="submit.add-to-cart-ubb" title="Add to Shopping Basket" data-hover="Select <b>__dims__</b> from the left<br> to add to Basket" class="a-button-input" type="submit" 
value="Add to Basket" aria-labelledby="submit.add-to-cart-ubb-announce">
<span id="submit.add-to-cart-ubb-announce" class="a-button-text" aria-hidden="true">Add to Basket</span></span></span>
</span>

</div>
 

Мой код на C # выглядит следующим образом:

 driver.FindElement(By.XPath("//button[contains(text(), 'Add to Basket')]")).Click();

driver.FindElement(By.XPath("//button[contains(text(), 'Add to Basket')]")).Click();

driver.FindElement(By.XPath("//*[contains(text(),'Add to Basket')]")).Click();

driver.FindElement(By.XPath("//button[contains(text(), 'Add to Basket')]")).Click();
 

Ответ №1:

//ввод[@value=’Добавить в корзину’]

Тега button нет, но вы можете получить входной тег по значению атрибута data, например.

Ответ №2:

Вы пытаетесь использовать элемент кнопки, но элемент кнопки не существует.

Кнопка добавить в корзину в HTML-формате:

 //input[@id='add-to-cart-button-ubb']