find_elements_by_<attribute> 和 WebDriverWait(self.driver, 20).until(EC.presence_of_element_loc



我最近开始研究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秒的执行时间,从更大的角度考虑(。

相关内容

  • 没有找到相关文章

最新更新