簡體   English   中英

Python (Selenium) 從 HHPRED 中選擇下拉列表

[英]Python (Selenium) Selecting a drop down list from HHPRED

我正在嘗試 select 從 HHPRED 網站下拉菜單項。 (網址: https://toolkit.tuebingen.mpg.de/tools/hhpred )我一直碰到“找不到對象”或“無法點擊/選擇對象”。

# Input protein from txt file (predator_file variable)
text_area = driver.find_element_by_id('__BVID__121')
text_area.send_keys(predator_file)

# Input PDB, SCOP, PFAM, and NCBI domains

 first_click = driver.find_element_by_id('__BVID__130')
 scop_click = driver.find_element_by_link_text("SCOPe")
 pfam_click = driver.find_element_by_link_text("Pfam")
 ncbi_click = driver.find_element_by_link_text("ncbi_")

我知道我正在正確地處理 selenium,因為我的文本輸入的第一部分正在正確復制,但是,當我從選擇它到甚至選擇我需要的東西的下拉菜單中工作時 - 我迷路了。 請參閱下面檢查的 HHPRED 元素和我正在處理的下拉列表。

在此處輸入圖像描述

在此處輸入圖像描述

任何幫助將不勝感激!

目前,由於 tooc 憑證,您的 url 無法訪問。 您可以將以下代碼用於 select 值/下拉列表中的可見文本。

from selenium import webdriver
from selenium.webdriver.support.ui import Select 

select= WebDriverWait(driver, 30).until(
            EC.element_to_be_clickable((By.XPATH, "select element xpath")))

print(len(select.options))
select.select_by_value("")          # select by value
select.select_by_visible_text('')  # select by visible text

注意:請將以下導入添加到您的解決方案中

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

或者

driver.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click()

更新的解決方案:它是一個自定義下拉元素,因此您需要以不同的方式處理它。 請找到以下代碼供您參考。 我已經驗證了它並按預期工作。

driver.get("https://toolkit.tuebingen.mpg.de/tools/hhpred")
main_window = driver.current_window_handle
wait = WebDriverWait(driver, 20)

wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn sign-in-link btn-href btn-sm']"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "(//fieldset[@class='form-group']//input)[2]"))).send_keys('')
wait.until(EC.element_to_be_clickable((By.XPATH, "(//fieldset[@class='form-group']//input)[3]"))).send_keys('')
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-secondary']"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//*[contains(text(), 'Got it!')]"))).click()

print wait.until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Paste Example')]"))).text
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
clickElement=wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='multiselect__tags']")))
ActionChains(driver).move_to_element(clickElement).click().perform()
wait.until(EC.element_to_be_clickable((By.XPATH, "//li[*]//span[contains(text(),'TIGRFAMs_v15.0')]"))).click()

Output:

在此處輸入圖像描述

暫無
暫無

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

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