Python selenium PO By.XPATH定位元素報錯
如下代碼經常報錯:
# 首頁的“新建投放計划”按鈕 new_ads_plan = (By.XPATH, "//*[text()='百度新聞']/..") print(type(self.new_ads_plan)) self.driver.find_element(self.new_ads_plan).click()
運行經常報錯:
selenium.common.exceptions.WebDriverException: Message: invalid argument: 'using' must be a string
解決辦法:
self.driver.find_element(*self.new_ads_plan).click()
在參數里面的元素定位 self 前加一個星號 *
=============================================================================================================================================================================================================================
new_ads_plan = (By.XPATH, "//*[text()='百度新聞']") shouye = (By.XPATH, "//a[text()= '首頁']") zanTing = (By.XPATH, "//span[text()= '刪 除']") bianji = (By.XPATH, "//span[text()= '編 輯']") addSuCai = (By.XPATH, "//span[text()= '添加']") def isElementExists(self, *loc): flag = True try: for num in range(0, len(loc)): print(str(loc[num])) self.driver.find_element(*loc[num]) return flag except: flag = False return flag # 判斷元素是否顯示
def is_ElementExists(self): return self.isElementExists((self.new_ads_plan), (self.shouye), (self.zanTing), (self.bianji), (self.addSuCai))
# 此處必須將多個定位元素的入參以元祖的形式填入,每一個元素的定位參數都是一個數組。