猿问

Python (Selenium) 从 HHPRED 中选择下拉列表

我正在尝试从 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 元素和我正在处理的下拉列表。

http://img3.mukewang.com/633e9956000144fb15300717.jpg

FFIVE
浏览 205回答 1
1回答

MMTTMM

目前,由于 tooc 凭据,您的网址无法访问。您可以使用以下代码从下拉列表中选择值/可见文本。from selenium import webdriverfrom 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 valueselect.select_by_visible_text('')  # select by visible text注意:请在您的解决方案中添加以下导入from selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom 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_handlewait = 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')]"))).textdriver.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()输出:
随时随地看视频慕课网APP

相关分类

Python
我要回答