今天遇到一個很奇怪的問題,selenium2中使用WebDriverWait來等待元素出現,就使用了expected_conditions.element_to_be_clickable(*loc),由於參數loc是從Excel獲取的,本身是個list,所以我就自作聰明的傳入了*loc,也就是:
def click(loc):
try:
ele = WebDriverWait(self.driver,30).until(expected_conditions.element_to_be_clickable(*loc))
ele.click()
except:
print u'元素點擊失敗!'
self.saveScreenShot_error('元素點擊失敗')
結果可想而知,報錯提示只需要兩個參數,結果傳了3個。。。。
後來查看代碼發現,這塊和drive.find_element(*loc)不同,這裏只需要傳入list就好了,底層已經實現了*By,所以實在多此一舉。