簡體   English   中英

如何在 python/selenium/scraping 中編寫這個 if 語句

[英]How to write this if statement in python/selenium/scraping

我在抓取網站時遇到了麻煩,因為一些相同的元素只是在不同的 class_name 中。 所以我試圖創建一個 if 語句來首先搜索 class,如果它不存在,它將繼續到下一個 class。

            driver.get("https://wormbase.org/#012-34-5")
            search = driver.find_element_by_id("Search")
            search.send_keys(cdi)
            search.send_keys(Keys.RETURN)

對於這一部分,我想添加一個 if 語句,說如果 id1 不存在則繼續 id

            if id1 =! : # still not sure how to create the if statement

            id = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "locus")))
            id1 = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "highlight")))

            
            description = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "text-min")))

            data['Gene_name'] = id.text
            data['Description'] = description.text

如果你想使用if語句,你必須使用

find_elements_by_id("some id")

代替

find_element_by_id("some id")

在這種情況下,如果頁面上存在所需的元素,則您將擁有一個包含一個元素的列表,如果沒有,則為空列表。

ids = driver.find_elements_by_id("some id")
if ids:
    # do something fo example
    ids[0].click()
else:
    # try to search it again or do something else

首先,使用以下方法找到長度:

elementLength=driver.find_elements_by_id("id")

然后,如果len(elementLength)>0 ,則 go 到第一個 class,否則 go 到另一個。

暫無
暫無

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

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