Python3で、tkinterを使用して、下記のコードを作成しました。
python
1from tkinter import * 2from tkinter import ttk 3 4root = Tk() 5root.title('測定CH設定') 6root.geometry("500x350+640+40") 7 8frame1 = ttk.Labelframe(root, text='測定帯域選択', padding=5) 9frame1.grid(row=0, column=0, columnspan=1, padx=15, pady=10, sticky='w') 10frame2 = ttk.Labelframe(root, text='2.4GHz',padding=5) 11frame2.grid(row=1,column=0, columnspan=1, padx=15, pady=10, sticky='nw') 12frame3 = ttk.Labelframe(root, text='5GHz',padding=5) 13frame3.grid(row=1,column=1, columnspan=1, padx=10, pady=10, sticky='w') 14 15selected_frame = IntVar() 16 17def change_selected_frame(): 18 if selected_frame.get() == 0: 19 for child in frame2.winfo_children(): 20 child.configure(state='enable') 21 for child in frame3.winfo_children(): 22 child.configure(state='disable') 23 24 elif selected_frame.get() == 1: 25 for child in frame2.winfo_children(): 26 child.configure(state='disable') 27 for child in frame3.winfo_children(): 28 child.configure(state='enable') 29 30 else: 31 for child in frame2.winfo_children(): 32 child.configure(state='disable') 33 for child in frame3.winfo_children(): 34 child.configure(state='disable') 35 36rb1 = ttk.Radiobutton(frame1, text='2.4GHz ', variable=selected_frame, value=0, command=change_selected_frame) 37rb1.grid(row=1,column=0,pady=5) 38rb2 = ttk.Radiobutton(frame1,text='5GHz', variable=selected_frame, value=1, command=change_selected_frame) 39rb2.grid(row=1,column=1,pady=5) 40 41class val_2G: 42 def __init__(self,name,set_frame,row_no): 43 self.bool=BooleanVar() 44 self.bool.set(False) 45 self.name=name 46 self.Cbtn=ttk.Checkbutton(set_frame, text=self.name, variable=self.bool) 47 self.Cbtn.grid(row=row_no,column=0, columnspan=1, padx=15, pady=5, sticky='w') 48 49class val_5G: 50 def __init__(self,name,set_frame,row_no): 51 self.bool=BooleanVar() 52 self.bool.set(False) 53 self.name=name 54 self.Cbtn=ttk.Checkbutton(set_frame, text=self.name, variable=self.bool) 55 self.Cbtn.grid(row=row_no,column=0, columnspan=1, padx=15, pady=5, sticky='w') 56 57val_2G1=val_2G('CH1',frame2,6) 58val_2G2=val_2G('CH2',frame2,7) 59val_2G3=val_2G('CH3',frame2,8) 60val_2G_list=[val_2G1, val_2G2, val_2G3] 61 62val_5G36=val_5G('CH36',frame3,6) 63val_5G40=val_5G('CH40',frame3,7) 64val_5G44=val_5G('CH44',frame3,8) 65val_5G_list=[val_5G36, val_5G40, val_5G44] 66 67def check_all_2G_checkboxes(): 68 for val in val_2G_list: 69 val.bool.set(True) 70 71def clear_all_2G_checkboxes(): 72 for val in val_2G_list: 73 val.bool.set(False) 74 75def check_all_5G_checkboxes(): 76 for val in val_5G_list: 77 val.bool.set(True) 78 79def clear_all_5G_checkboxes(): 80 for val in val_5G_list: 81 val.bool.set(False) 82 83def check_box(): 84 selected_channel='' 85 86 for val in val_2G_list: 87 if val.bool.get(): 88 if selected_channel=='': 89 selected_channel+=val.name 90 else: 91 selected_channel+=' & '+val.name 92 93 for val in val_5G_list: 94 if val.bool.get(): 95 if selected_channel=='': 96 selected_channel+=val.name 97 else: 98 selected_channel+=' & '+val.name 99 100 print(selected_channel) 101 102def quit(): 103 root.destroy() 104 105btn1 = ttk.Button(frame2, text='全選択', padding=5, command=check_all_2G_checkboxes) 106btn1.grid(row=5,column=0,pady=5) 107 108btn2 = ttk.Button(frame2, text='全解除', padding=5, command=clear_all_2G_checkboxes) 109btn2.grid(row=5,column=1,pady=5) 110 111btn3 = ttk.Button(frame3, text='全選択', padding=5, command=check_all_5G_checkboxes) 112btn3.grid(row=5,column=0,pady=5) 113 114btn4 = ttk.Button(frame3, text='全解除', padding=5, command=clear_all_5G_checkboxes) 115btn4.grid(row=5,column=1,pady=5) 116 117btn5 = ttk.Button(text='測定', padding=5, command=check_box) 118btn5.grid(row=5,column=0,pady=5) 119 120btn6 = ttk.Button(text='中止', padding=5, command=quit) 121btn6.grid(row=5,column=1,pady=5) 122 123selected_frame.set(-1) 124change_selected_frame() 125 126root.mainloop()
選択されたラジオボタン、チェックボタンの情報をもとに次のコードを設定したいのですが、
どのように関数を組み込めばいいのか解りません。
python
1from selenium import webdriver 2driver = webdriver.Firefox() 3driver.get('http://router.asus.com') 4 5driver.find_element_by_id('login_username').send_keys('admin') 6driver.find_element_by_name('login_passwd').send_keys('password') 7driver.find_element_by_class_name('button').click() 8 9driver.maximize_window() 10driver.get('http://router.asus.com/Advanced_Wireless_Content.asp') 11 12from selenium.webdriver.support.ui import Select 13 14f2g = driver.find_elements_by_name('wl_unit') 15Select(f2g[2]).select_by_value("0") # ← 周波数帯域選択、0か1の値 16 17f2g = driver.find_element_by_name('wl_channel') 18f2g_ch = Select(f2g) 19f2g_ch.select_by_value("3") # ← チャンネル指定(周波数帯域選択が1の場合[1,2,3] 選択が1の場合[36,40,44]) 20 21driver.find_element_by_id('applyButton').click() 22 23from selenium.webdriver.common.alert import Alert 24Alert(driver).accept() 25 26コード
初心者のため解り辛いコードで大変申しわけございません。
もしご存知の方がいたらご教授いただけないでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/25 02:24
2019/09/27 01:55