2016-07-12 229 views
0

在Python3使用Selenium選擇一個單選按鈕 image here。下面是我用來選擇單選按鈕的代碼,但它不起作用。硒選擇單選按鈕

emailElem = browser.find_element_by_class_name('SSR_DUMMY_RECV1$sels$0') 
    emailElem.click() 
+0

「不起作用」是什麼意思?程序崩潰了嗎?你有錯誤信息嗎?它是否點擊錯誤的元素? –

+0

@BryanOakley很抱歉的不確定性,我得到這樣 ./fsu.py 回溯錯誤(最後最近一次調用): 文件 「./fsu.py」,第20行,在 emailElem.click() AttributeError:'list'對象沒有屬性'click' – Carolyn

+0

如果你得到''list'對象沒有屬性點擊',這聽起來像你打電話'find_elements_by_whatever'(注意「s」)。這將返回一個元素列表而不是單個元素。你確定你在調用「find element_ *」而不是「find_elements_ *」嗎?你能否通過編輯你的問題來顯示確切的代碼和確切的錯誤? –

回答

2

「類名」定位應該使用class屬性來定位元素值,在這種情況下使用「的ID」或「按名稱」,而不是:

emailElem = browser.find_element_by_id('SSR_DUMMY_RECV1$sels$0') 
emailElem = browser.find_element_by_name('SSR_DUMMY_RECV1$sels$0') 
+0

謝謝你的回覆! 不幸的是我得到這個錯誤: 回溯(最近通話最後一個): 文件 「./fsu.py」,第20行,在 emailElem.click() AttributeError的: '名單' 對象有沒有屬性「點擊' – Carolyn

+0

@ user6581117您正在使用'find_elements_by_ *',但需要使用'find_element_ *'方法 - 注意's'。 – alecxe

+0

謝謝你指出。我糾正了它,但仍然繼續收到此錯誤。 'selenium.common.exceptions.NoSuchElementException:消息:找不到元素:{ 「方法」: 「名字」, 「選擇」: 「SSR_DUMMY_RECV1 $ SELS $ 0」}' – Carolyn

0

只需添加alecxe的答案更多一點。

你需要確保其idname是唯一的。

如果不是唯一的,你可以到find by方法,例如增加更多的屬性

emailElem = browser.find_element_by_css_selector("input[id='SSR_DUMMY_RECV1$sels$0'][class=''PSRADIOBUTTON][type='radio']") 

您使用的屬性越多,定位唯一元素的可能性就越大。

+0

感謝您回覆! 不幸的是我不斷收到此錯誤 提高exception_class(消息,屏幕,堆棧跟蹤) selenium.common.exceptions。InvalidSelectorException:消息:給定的選擇器輸入[id ='SSR_DUMMY_RECV1 $ sels $ 0'] [class =''PSRADIOBUTTON] [type ='radio']無效或不導致WebElement。發生以下錯誤: InvalidSelectorError:指定了無效或非法的選擇器 – Carolyn

0

根據意見,原來的問題,你要求你收到此錯誤:

Traceback (most recent call last): 
    File "./fsu.py", line 20, in <module> 
    emailElem.click() 
AttributeError: 'list' object has no attribute 'click' 

這聽起來像是你打電話的get_elements_*功能之一,而不是get_element_*(注意是複數elements)。

錯誤信息中包含大量信息,需要從字面上理解。你的錯誤信息告訴你一個列表沒有一個click方法,這是真的。讀取行之間的意思是,即使您認爲它是一個元素,您調用.click()的對象也是一個列表。

+0

非常感謝你@Bryan Oakley!有什麼辦法可以選擇它嗎?從[Selenium Docs](http://selenium-python.readthedocs.io/api.html?highlight=radio#selenium.webdriver.remote.webelement.WebElement.is_selected)我收集它必須是'is_selected()'但我不知道如何實現 – Carolyn

+0

@ user6581117:請問您的問題如下? http://stackoverflow.com/q/21322116/7432 –

+0

'selenium.common.exceptions.NoSuchElementException:消息:無法找到元素:{「method」:「css selector」,「selector」:「input [type ='收音機']「}'我嘗試了幾個答案,但似乎沒有工作,我仍然得到這個錯誤的類似變化。 – Carolyn