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 元素以及我正在处理的下拉列表。

在此处输入图片说明

在此处输入图片说明

任何帮助将不胜感激!

迪帕克·巴哈夫

目前由于 tooc 凭据无法访问您的网址。您可以使用以下代码从下拉列表中选择值/可见文本。

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()

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Selenium Python从下拉选项中选择一个值

Selenium Webdriver无法在下拉列表中选择一个值

无法从硒python的下拉列表中选择一个值

Python Selenium从下拉列表中选择第一个元素

使用Selenium WebDriver在自定义下拉列表中选择一个选项

如何从具有特殊设置的网站上使用Selenium从下拉列表中选择一个值-Python

Selenium没有从下拉列表中选择一个选项

使用Python + Selenium选择一个下拉菜单

如何在python和selenium中使用execute_script从下拉列表中选择一个值

如何使用Selenium和Python从下拉菜单中选择一个选项

如何使用Selenium和Python从DropDown列表中选择一个值

如何使用Selenium和Python从自动建议中选择一个选项

Python / Selenium:在几个下拉菜单中选择所有相同的类,选择一个值,刷新浏览器并重新启动脚本

使用Selenium Python从可扩展类中选择一个项目

使用selenium和python从下拉菜单中选择一个选项

如何使用Selenium Python从自动建议中选择一个值

无法从下拉菜单Python Selenium中选择一个选项

Python Selenium xPath从div类中选择一个相对值

使用 Selenium 从另一个框架中查找与下拉列表相关的元素 -- Python

Selenium Python:如何从下拉列表中选择项目

如何通过 selenium webdriver 和 java 从下拉列表中选择一个项目

如何使用selenium webdriver java从城市字段的GoIbibo中的自动选择下拉列表中选择一个元素

Selenium WebDriver:如何在跨度下拉列表中选择一个值?

从 selenium python 的下拉列表中选择

如何使用 selenium python 选择下一个下拉菜单

Selenium Python:从跨度下拉列表中选择元素

如何从python selenium的下拉菜单中选择一个值

如何在python中使用硒从下拉列表中选择一个选项

无法使用 Python、Selenium 从下拉列表中选择一个选项