簡體   English   中英

Selenium Python If-else 語句

[英]Selenium Python If-else Statement

我有一個小 python 腳本,它在休息 1 秒后按下一些不同的按鈕(1、2、3 和 4) 一切正常,但有時只有按鈕 4 出現在該網站上,而 1、2、3 沒有,而我的腳本可以t 處理缺少 Button 1,2 和 3 的問題:( 我試圖做一個 if-else 語句,但它不起作用。我也嘗試了 try: and finally: 解決方案。也許你有一個小費給我我會很高興^^


"每個Button出現時沒有if-else語句

                  "Button 1 appears
    wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn']"))).click()
    time.sleep(1) "Button 2 appears
    wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn']"))).click()
    time.sleep(1) "Button 3 appears
    wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn active']"))).click()
    time.sleep(1) "Button 4 appears
    wait.until(EC.element_to_be_clickable((By.XPATH,"/html/body/uni-app/uni-page/uni-page-wrapper/uni-page-body/uni-view/uni-movable-area/uni-scroll-view/div/div/div/uni-view/uni-view[3]/uni-view[2]/uni-view/uni-view/img[2]"))).click()
    time.sleep(1) 

“當僅出現按鈕 4 時使用 if-else 語句。如果出現按鈕 1,則 go 為 2、3 和 4。如果按鈕 1 未出現,只需按按鈕 4(所以我的想法 ^^)但它沒有得到

    if driver.find_element_by_xpath("//uni-view[@class='btn']"):
        wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn']"))).click()
        time.sleep(1)
        wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn']"))).click()
        time.sleep(1)
        wait.until(EC.element_to_be_clickable((By.XPATH, "//uni-view[@class='btn active']"))).click()
        time.sleep(1)
        wait.until(EC.element_to_be_clickable((By.XPATH,"/html/body/uni-app/uni-page/uni-page-wrapper/uni-page-body/uni-view/uni-movable-area/uni-scroll-view/div/div/div/uni-view/uni-view[3]/uni-view[2]/uni-view/uni-view/img[2]"))).click()
        time.sleep(1)
    else:
        wait.until(EC.element_to_be_clickable((By.XPATH,"/html/body/uni-app/uni-page/uni-page-wrapper/uni-page-body/uni-view/uni-movable-area/uni-scroll-view/div/div/div/uni-view/uni-view[3]/uni-view[2]/uni-view/uni-view/img[2]"))).click()
        time.sleep(1)

有幾件事,不要使用 If-else 語句,而是使用Try-except語句。 如果您不確定某個元素是否會出現,您也不應該使用“wait.until”命令。 如果它沒有出現,那么它將無限期地等待。 請參閱下面的代碼進行更改,您可能需要根據您的特定情況對其進行調整:

try:
    driver.find_element_by_xpath("//uni-view[@class='btn']").click() #button_one
    time.sleep(1)
    driver.find_element_by_xpath("//uni-view[@class='btn']").click() #button_two
    time.sleep(1)
    driver.find_element_by_xpath("//uni-view[@class='btn active']").click() #button_three
    time.sleep(1)
    driver.find_element_by_xpath("/html/body/uni-app/uni-page/uni-page-wrapper/uni-page-body/uni-view/uni-movable-area/uni-scroll-view/div/div/div/uni-view/uni-view[3]/uni-view[2]/uni-view/uni-view/img[2]").click() #button_four
    time.sleep(1)
except:
    driver.find_element_by_xpath("/html/body/uni-app/uni-page/uni-page-wrapper/uni-page-body/uni-view/uni-movable-area/uni-scroll-view/div/div/div/uni-view/uni-view[3]/uni-view[2]/uni-view/uni-view/img[2]").click() #button_four
    time.sleep(1)

換句話說:驅動程序試圖找到 button_one,如果可以,則繼續按 button_two、button_three,然后是 button_four。 但是如果驅動程序找不到button_one,那么它只按下button_four。

如果在 except: 命令之后的按鈕 4 也不可用怎么辦?腳本將通過錯誤或只是通過它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM