用python和selenium刮除,寻找好的循环

qv7cva1a  于 2022-12-18  发布在  Python
关注(0)|答案(1)|浏览(122)

我想知道如何创建一个循环来查找多个场景,并根据找到的场景执行不同的操作,要么是场景1并执行某些操作,要么是场景2并执行其他操作。
让我解释一下,我需要这个循环来做这样的事情:
1/点击下拉菜单,下拉菜单为:btn选项= WebDriverWait(驱动程序,1000).until(错误代码.元素可单击((通过.XPATH,“/html/body/div....”)).单击()
2/搜索元素(1和2)的存在。
3/如果找到元素1,则执行一些操作并从开始处重新启动循环。第一个元素:(通过.XPATH,“//[文本()=”我的文本1“]”)
4/如果找到元素2,则执行一些操作并从开始处重新启动循环。第二个元素:(通过.XPATH,“//
[文本()=”我的文本2 ']”)
我尝试了几个代码,但每次程序停止,因为他发现一个元素,并给予一个错误,因为它没有找到其他元素。第一个是这个:

while True:
try:
    btnOptions = WebDriverWait(driver, 1000).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div...."))).click()
    btnTrash = WebDriverWait(driver, 1000).until(EC.element_to_be_clickable((By.XPATH, "//*[text()='My text1']"))).click()
    btn_move = WebDriverWait(driver, 1000).until(EC.presence_of_element_located((By.XPATH,
                                                                               "/html/body/...."))).click()
    time.sleep(2)
except NoSuchElementException:
    break

这是我的第一个代码,它适用于第一个场景,有时出现新的场景,这个场景会过时并生成错误,然后程序停止
我试过这个:

while True:
try:
    btnOptions = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "/html/body/..."))).click()
    firstElement = WebDriverWait(driver, 10).until(driver.find_elements(By.XPATH, "//*[text()='My text1']"))
    if not firstElement:
        btnTrash = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[text()='My text2']"))).click()
        WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,
                                                                    "/html/body/...."))).click()
    else:
        firstElement.click()
except NoSuchElementException:
    break

这是行不通的。
我也试过这个:

while True:
try:
    btnOptions = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div/...."))).click()
    WebDriverWait(driver, 20).until(driver.find_element(By.XPATH("//*[text()='My text1']"))).click() or WebDriverWait(driver, 20).until(driver.find_element(By.XPATH("//*[text()='My text2']"))).click()
except NoSuchElementException:
    break

一定有什么简单的事情可以做,但是我做不到,无论我怎么努力都不起作用

ccgok5k5

ccgok5k51#

您可以在另一个语句中使用另一个try except语句:

try:
   #some action
except:
   try:
      #some other action
   except:
      #what to do if the two previous ones failed

相关问题