我最近开始研究selenium python。这两种输出都相同。我想知道是否有什么不同
time.sleep(10)
element = self.driver.find_element_by_xpath(<some-xpath>).get_attribute('textContent')
和
element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, <some-xpath>))).get_attribute('textContent')
使用您的第一个代码
time.sleep(10)
element = self.driver.find_element_by_xpath(<some-xpath>).get_attribute('textContent')
脚本将等待10秒,然后返回与xpath匹配的元素。但是,当您使用第二个代码时
element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, <some-xpath>))).get_attribute('textContent')
元素将在可用时返回。脚本将在最多10秒的时间内继续检查元素。
因此,最好使用ExplicitWait,如代码的第二部分所示。
考虑元素在3秒内显示,那么在第一种方法中浪费了7
秒,但在第二种方法中,脚本将在元素在第3秒出现后立即进入下一步(为一个元素节省7
秒的执行时间,从更大的角度考虑(。