![](/img/trans.png)
[英]Selecting options from drop down list in python using Selenium Webdriver
[英]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.