Selenium和Python,带有不允许输入的搜索栏

Selenium和Python,带有不允许输入的搜索栏,python,selenium,Python,Selenium,我正试着通过公司搜索网站,但它的搜索功能是不可靠的 我目前正在尝试等待,直到元素是可见的,但我不能完全破解它。我是新来的,所以用完整的代码回答非常感谢 在这个例子中,我们从Verison开始,我想去特斯拉 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from seleniu

我正试着通过公司搜索网站,但它的搜索功能是不可靠的

我目前正在尝试等待,直到元素是可见的,但我不能完全破解它。我是新来的,所以用完整的代码回答非常感谢

在这个例子中,我们从Verison开始,我想去特斯拉

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

driver = webdriver.Chrome('Path/to/Chromedriver')

wait = WebDriverWait(driver, 10)
    
company_to_search = 'TESLA, INC.'

url = 'https://www.msci.com/our-solutions/esg-investing/esg-ratings/esg-ratings-corporate-search-tool/issuer/verizon-communications-inc/IID000000002188695'

driver.get(url)
search = wait.until(EC.visibility_of_element_located((By.ID, "_esgratingsprofile_keywords")))
search.send_keys(company_to_search)
search.submit()

您需要等待选项并单击它:

driver.get(url)
search = wait.until(EC.visibility_of_element_located((By.ID, "_esgratingsprofile_keywords")))
search.send_keys(company_to_search)
option = wait.until(EC.visibility_of_element_located((By.XPATH, "//li[.='%s']" % company_to_search)))
option.click()

您需要等待选项并单击它:

driver.get(url)
search = wait.until(EC.visibility_of_element_located((By.ID, "_esgratingsprofile_keywords")))
search.send_keys(company_to_search)
option = wait.until(EC.visibility_of_element_located((By.XPATH, "//li[.='%s']" % company_to_search)))
option.click()

假设搜索是一个文本框,如果send_键用于填充文本框,那么您需要找到所包含的表单元素,然后在该元素上调用submit,而不是在文本框上。实际上,我认为Selenium的“submit()”可以用于任何表单元素来提交表单。我对这个问题感到困惑,当你使用你的代码时,你有没有遇到异常?发生了什么?可能搜索是一个文本框,如果send_键可以填充文本框,那么您需要找到包含的表单元素,然后调用submit,而不是在文本框上。实际上,我认为Selenium的“submit()”可以用于任何表单元素来提交表单。我对这个问题感到困惑,当你使用你的代码时,你有没有遇到异常?发生了什么,没有发生什么?