selenium + python проблема в определении двух похожих радио кнопок

python
selenium
webdriver
Теги: #<Tag:0x00007fedc11c7e68> #<Tag:0x00007fedc11c7b20> #<Tag:0x00007fedc11c7850>

(Svetlana) #1

хочу вывести в переменные все тестовые данные. но не могу никак правильно объявить переменную:

есть 2 радио кнопки. как их правильно объявить?
сейчас у меня вот так:

 def instance_type():
     element1 = wd.find_element_by_name("instanceType")
     wd.execute_script("arguments[0].click();", element1)

но это идет обращение к общему name.
а нужно чтобы отдельно можно было к каждой обращаться.

заранее всем благодарна за ответы.


(Maxim Andryushchenkov) #2

Стойте! Пока вы еще не начали углубляться лучше удалите эту строку и ставьте смело PyTest


(Svetlana) #3

спасибо.
изменила на PyTest.
предлагаете дальше уже не использовать unittest?


(rpwheeler) #4

У Вас как-то странно написан Python класс. Если Вы делаете self.wd , то везде дожно быть self.wd Если Вы передаете wd , то зачем делать тут же новый self.wd?

Вообще с текущим форматированием непонятно как он может работать. Может через Pastebin выложить?


(Svetlana) #5
 from selenium.webdriver.chrome.webdriver import WebDriver


def open_log():
    global wd
    pwd = "login:password"
    url = 'http://' + pwd + 'link'
    wd = WebDriver()
    response = wd.get(url)



def open_page_files():
   wd.get("http://...")
   wd.implicitly_wait(10)


def click_add():
    element = wd.find_element_by_css_selector(".jss203.jss255.jss257.jss221")
    wd.execute_script("arguments[0].click();", element)


def tax_version(ver_tax=".jss456"):
    element3 = wd.find_element_by_css_selector(ver_tax)
    wd.execute_script("arguments[0].click();", element3)


def instance_type():
    element1 = wd.find_element_by_name("instanceType")
    wd.execute_script("arguments[0].click();", element1)


def period_type():
    element2 = wd.find_element_by_name("periodType")
    wd.execute_script("arguments[0].click();", element2)


def change_year(change_period="year"):
    element4 = wd.find_element_by_id(change_period)
    wd.execute_script("arguments[0].click();", element4)


def change_entry_point():
    element5 = wd.find_element_by_id("entryPointUuid")
    wd.execute_script("arguments[0].click();", element5)


 def click_next():
     element6 = wd.find_element_by_css_selector(".jss203.jss255.jss260.jss261.jss284")
     wd.execute_script("arguments[0].click();", element6)


 def click_start_report():
     element7 = wd.find_element_by_css_selector(".jss203.jss255.jss260.jss261.jss284")
     wd.execute_script("arguments[0].click();", element7)


 open_log()
 open_page_files()
 click_add()
 tax_version()
 instance_type()
 period_type()
 change_year()
 change_entry_point()
 click_next()
 click_start_report()

(Svetlana) #7

проблему решила

def instance_type(ins_type="input[name='instanceType'][value='NSO']"):
    element1 = wd.find_element_by_css_selector(ins_type)
    wd.execute_script("arguments[0].click();", element1)