我创建了一个循环(while True)
,以使用python自动执行站点上的任务。此代码单击两个字段,直到元素出现在页面上
(browser.find_element_by_id ('formComp: buttonBack')
。
出现此元素时,我希望循环停止并转到下一个代码块。
我以这种方式进行了测试,但是它犯了一个错误。 Python报告未找到元素"formComp: buttonback"
。就是这样,如果找不到,请继续循环:
while (browser.find_element_by_id('formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')):
vinc = wait.until(EC.presence_of_element_located((By.ID, 'formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')))
vinc = browser.find_element_by_id('formComp:repeatCompromissoLista:0:tableRealizacao:0:subtableVinculacoes:0:vinculacao_input')
vinc.send_keys('400')
enterElem5 = wait.until(EC.element_to_be_clickable((By.ID, 'formComp:buttonConfirmar')))
enterElem5 = browser.find_element_by_id('formComp:buttonConfirmar')
enterElem5.send_keys(Keys.ENTER)
time.sleep(int(segundosv))
if (browser.find_element_by_id('formComp:buttonRetornar')== True):
break
else:
continue
答案 0 :(得分:1)
尝试这样希望对您有所帮助。检查按钮的length
计数是否大于0。
if (len(browser.find_elements_by_id('formComp:buttonRetornar'))>0):
break
else:
continue
答案 1 :(得分:0)
find_element_by_id()
不返回False
。相反,它会引发selenium.common.exceptions.NoSuchElementException
。您可以处理该异常以获得所需的流控制:
try:
browser.find_element_by_id('formComp:buttonRetornar')
break
except NoSuchElementException:
continue