如何单击直到下一页在 Selenium python 中不可交互?
How to click until next page is noninteractable in Selenium python?
滚动某个页面的'next page'按钮时,我想一直点击直到显示所有内容。但是这个网站的问题是最后按钮没有消失,可以找到但是处于不可交互状态,如果点击它,页面会return错误。我应该如何在异常发生前停止点击?下面的代码会使页面 return 出错,因为它会点击最后一个 'nonInteractable' 按钮。
next_button=True
while next_button:
try:
next_button = driver.find_element_by_class_name('next_page')
next_button.click()
except ElementNotInteractableException:
next_button=False
break
您可以像这样创建一个用户定义的函数:
def elementPresent(locatorType, locator):
#present = true
#not present = false
wait = WebDriverWait(driver, 20)
try:
wait.until(EC.presence_of_element_located((locatorType, locator)))
wait.until(EC.visibility_of_element_located((locatorType, locator)))
except Exception:
return False
return True
这个函数主要是检查元素的存在和可见性。如果找到具有给定定位器的元素,则函数 returns True 否则为 False
要调用该函数,您可以使用循环,例如 while 循环
例如:
while(locatorType, locator):
element = driver.find_element_by_class_name('next_page')
element.click()
滚动某个页面的'next page'按钮时,我想一直点击直到显示所有内容。但是这个网站的问题是最后按钮没有消失,可以找到但是处于不可交互状态,如果点击它,页面会return错误。我应该如何在异常发生前停止点击?下面的代码会使页面 return 出错,因为它会点击最后一个 'nonInteractable' 按钮。
next_button=True
while next_button:
try:
next_button = driver.find_element_by_class_name('next_page')
next_button.click()
except ElementNotInteractableException:
next_button=False
break
您可以像这样创建一个用户定义的函数:
def elementPresent(locatorType, locator):
#present = true
#not present = false
wait = WebDriverWait(driver, 20)
try:
wait.until(EC.presence_of_element_located((locatorType, locator)))
wait.until(EC.visibility_of_element_located((locatorType, locator)))
except Exception:
return False
return True
这个函数主要是检查元素的存在和可见性。如果找到具有给定定位器的元素,则函数 returns True 否则为 False
要调用该函数,您可以使用循环,例如 while 循环
例如:
while(locatorType, locator):
element = driver.find_element_by_class_name('next_page')
element.click()