Selenium - 检查元素是否存在,否则检查是否存在另一个元素(在python中)

时间:2017-04-03 02:35:05

标签: python selenium selenium-webdriver element

我正在编写一个程序,从我的学校网站上删除课程,我试图检查点击搜索按钮后出现的元素。

如果'id1'存在,那么这意味着课程不可用,需要搜索下一个课程,否则如果'id2'存在则表示课程可用,所以抓取它并搜索下一个课程。< / p>

这就是我现在所拥有的,但它不起作用。我已经厌倦了使用带有条件语句的webdriverwait,但我也无法让它工作。那我怎么解决这个问题呢?

while(i < len(courseNumList)):
   self.clearAndSearch(courseNumList[i], coursePrefixList[i])

   if(len(self.driver.find_elements_by_id('id1')) > 0):
      i = i + 1
      continue
   self.scrapeAndModifySearch(courses, INDEX_NAME, TYPE_NAME)
      i = i + 1

scrapeAndModifySearch():

def scrapeAndModifySearch(self, courses, esindex, estypename):
   self.getCourses(courses, esindex, estypename)
   self.modifySearch()

getCourses():

def getCourses(self, courses, INDEX_N, TYPE_N):
   course = {}

   try:
      element_present = EC.presence_of_element_located((By.ID, 'id2'))
      WebDriverWait(self.driver, 30).until(element_present)
   except TimeoutException:
      print ("Loading took too much time!")

   classSectionsFound = self.driver.find_element_by_xpath('id2').text

1 个答案:

答案 0 :(得分:0)

似乎你把你的定位器混淆了。最后一行应该是:

   classSectionsFound = self.driver.find_element_by_id('id2').text

&#39; ID2&#39;是无效的xpath(至少不适用于HTML文档)。