Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Школа для начинающих тестировщиков
онлайн, начало 122 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Подскажите как кликнуть Radio button


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 cubespace

cubespace

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Валерий

Отправлено 12 Июль 2018 - 16:32

Всем привет.
 
Подскажите как в Python + Selenium отловить Radio button и Checkbox

 

Прикрепленный файл  D3wKVhC1.png   493,87К   1 Количество загрузок:

 

Отметил то что нужно отловить и кликнуть по нему.

<option value="1">В наличии</option>
<option value="0">Нет в наличии</option>
<option value="2">Под заказ</option>
</select>
</div>
<div class="col-lg-4 col-sm-4"></div>
<div class="col-lg-4 col-sm-4"></div>
<div class="col-lg-4 col-sm-4 js-availability-days" style="display:none;">
<input type="text" class="form-control" name="g_availability_days" value="0">
<span class="help-block">дней</span>
</div>
</div>
<div class="form-group">
<div class="col-lg-12 col-sm-12">
<ul class="nav nav-tabs my-tabs b-sale-tape">
<li class="active">
<a href="#price-retail" data-price-tab="retail_wholesale" data-toggle="tab" class="js-choose-both-prices" data-target=".price-retail,.price-wholesale">
Возможен опт и розница
</a>
</li>
<li>
<a href="#price-retail" data-price-tab="retail" class="js-choose-retail-price" data-toggle="tab" data-target=".price-retail" class="p-link">
Только в розницу
</a>
</li>
<li>
<a href="#price-wholesale" data-price-tab="wholesale" class="js-choose-wholesale-price" data-toggle="tab" data-target=".price-wholesale">
Только оптом
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="price-retail tab-pane form-group active">
<div class="col-sm-12">
<label class="my-form__title" for="prices[retail]">
Розничная цена
</label>
</div>
<div class="col-sm-6 ">
<input class="form-control" type="text" name="prices[retail]" id="prices[retail]" value="" />
<div class="form-error"></div>
</div>
<div class="col-sm-1">
<div class="my-form__inline-text my-form__inline-text--small js-container-currency"></div>
</div>
<div class="col-sm-5">
<div class="my-form__inline-text my-form__inline-text--small js-container-units-retail"></div>
</div>
<div class="col-sm-12"></div>
<div class="col-sm-6" style="margin-top: 10px;">
<div class="checkbox">
<label>
<input type="hidden" name="parameters[8637][0][id]" value="8637">
<input type="checkbox" name="parameters[4340][0][text]" value="1">
<i></i> Цена от
</label>
<span class="info-tooltip _toLeft" data-toggle="tooltip-hover" data-placement="bottom" title='«Цена от» - является решением для тех случаев, когда стоимость товара/услуги не может быть определена точно, либо не является постоянной. Рекомендуем использовать только точные цены, так как их наличие значительно повышает интерес к товару у покупателей.'>
?

Подбирал разные варианты но так и не получилось поймать то что нужно.

 


  • 0

#2 MissLeman

MissLeman

    Активный участник

  • Members
  • PipPip
  • 109 сообщений


Отправлено 12 Июль 2018 - 17:43

а что именно не получается?


  • 0

#3 cubespace

cubespace

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Валерий

Отправлено 12 Июль 2018 - 17:50

Не получается отловить нужный класс или id или другой какой элемент, чтобы сделать клик на тех пунктах которые подчеркнул красным.

Вообщем нужно поставить галочки на элементах (Radio button и Checkbox):

ZXSr3tP.png


  • 0

#4 cubespace

cubespace

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Валерий

Отправлено 12 Июль 2018 - 18:18

Пробувал разные варианты но ничего не находит:

<a href="#price-retail" data-price-tab="retail" class="js-choose-retail-price" data-toggle="tab" data-target=".price-retail" class="p-link">
Только в розницу
</a>
Radio = driver.find_element_by_xpath("//a[@class='js-choose-retail-price']")
Radio.click()

Radio = driver.find_element_by_class_name("js-choose-retail-price")
Radio.click()

Radio = driver.find_element_by_xpath("//div[@class='form-group']/div[@class='col-lg-12 col-sm-12']/ul/li/a[1]")
Radio.click()

  • 0

#5 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Александр

Отправлено 12 Июль 2018 - 19:04

Я так и не понял сути проблемы. Элементы не находит? Или что за ошибка вообще в итоге-то?

 

 

 

Через javascript не пробовали?

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

  • 0

#6 MissLeman

MissLeman

    Активный участник

  • Members
  • PipPip
  • 109 сообщений


Отправлено 13 Июль 2018 - 13:19

Не получается локатор написать, что ли? Потому что несколько элементов с одинаковыми атрибутами?

 

вот так вроде должно работать, допустим, в xpath можно складывать любой атрибут, не обязательно класс.

//a[@data-price-tab="retail"]

в помощь

 

https://www.guru99.c...h-selenium.html

https://chrome.googl...lfhmkeplbhddipe


  • 0

#7 cubespace

cubespace

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Валерий

Отправлено 17 Июль 2018 - 17:27

Всем спасибо за помощь, разобрался в проблеме. оказалось вся проблема в том что я не вышел 

driver.switch_to_frame("js-lang-description-1_ifr")
driver.find_element_by_xpath("//body[@id='tinymce']")
conten = driver.find_element_by_id("tinymce")
conten.send_keys(str(z['description']))

driver.switch_to_default_content()

Не было строки: driver.switch_to_default_content()

Потому и не мог отловить.


  • 1


Selenium 2.0: стартовый уровень
онлайн, начало 9 ноября
Программирование на Java для тестировщиков
онлайн, начало 12 октября
Автоматизация функционального тестирования
онлайн, начало 5 октября
Selenium WebDriver: полное руководство
онлайн, начало 19 октября



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале