Selenium WebDriver 錯誤:AttributeError:'list' 物件沒有屬性 'click'
我們在進行測試時可能會遇到 Selenium webdriver 錯誤:AttributeError:'list' 物件沒有屬性 'click'。讓我們看一個我們遇到此類錯誤的程式碼示例。
示例
程式碼實現
from selenium import webdriver driver = webdriver.Chrome(executable_path='../drivers/chromedriver') #implicit wait driver.implicitly_wait(0.5) #url launch driver.get("https://tutorialspoint.tw/index.htm") #identify an element m = driver.find_elements_by_name('search') m.click() #browser quit driver.quit()
輸出
在上面的程式碼中,由於我們使用了 find_elements_by_name 而不是 find_element_by_name 對單個元素執行點選操作,因此我們遇到了錯誤。該方法 find_elements_by_name 返回一個元素列表。
此處,我們要對一個元素執行單擊操作,因此 webdriver 無法識別要對其執行單擊操作的元素。在這種情況下,如果我們要使用 find_elements_by_name 方法,我們必須明確指定要單擊元素的索引。
示例
程式碼實現
from selenium import webdriver driver = webdriver.Chrome(executable_path='../drivers/chromedriver') #implicit wait driver.implicitly_wait(0.5) #url launch driver.get("https://tutorialspoint.tw/index.htm") #identify an element with find_element_by_name m = driver.find_element_by_name('search') m.click() m.send_keys('Selenium') s = m.get_attribute('value') print('Value entered: ' + s) #browser quit driver.quit()
輸出
廣告