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

Фотография

Подскажите как кликнуть 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
  • PipPipPip
  • 152 сообщений


Отправлено 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
  • 117 сообщений
  • ФИО:Александр

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

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

 

 

 

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

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

  • 0

#6 MissLeman

MissLeman

    Постоянный участник

  • Members
  • PipPipPip
  • 152 сообщений


Отправлено 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


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

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