reactjs 使用Selenium在Python中的React下拉列表中选择一个值?

r1zhe5dt  于 2023-03-22  发布在  React
关注(0)|答案(1)|浏览(145)

第一次使用Selenium,我不知道我做错了什么
我试图转到https://www.cboe.com/delayed_quotes/vix/quote_table并单击下拉框,我试图选择:

  • 体积:大于0(拼写错误明显)
  • 选项范围:全部
  • 有效期:全部

我可以点击下拉框,但我不能选择我需要的值。我似乎无法在HTML中找到我正在寻找的值。我很挣扎,因为当点击下拉框时,类名似乎会改变。没有像“option value = All”这样的代码或任何对我来说非常明显的东西。

link = "https://www.cboe.com/delayed_quotes/{}/quote_table".format(ticker)

driver = webdriver.Chrome("chromedriver")
driver.get(link)

wait = WebDriverWait(driver, 60)
find = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'css-19bqh2r')))
find.click()

现在我不知道接下来该怎么做了。所有的下拉列表似乎都有相同的类名,我不知道如何识别我想要的特定的一个。谢谢!

t9aqgxwy

t9aqgxwy1#

这个网站是一个有点痛苦的工作...这些下拉列表,特别是但我终于得到了它的工作.基本上你需要有等待每次点击,因为该网站需要一秒钟的加载,然后每个下拉加载的选项,需要一秒钟,等等.你必须点击下拉打开它,然后点击所需的选项,一旦它的加载.

link = "https://www.cboe.com/delayed_quotes/{}/quote_table".format(ticker)
driver = webdriver.Chrome("chromedriver")
driver.get(link)

wait = WebDriverWait(driver, 5)
# dismiss the bottom hovering panel
wait.until(EC.element_to_be_clickable((By.XPATH("//button[text()='Read less']")))).click();

# Volume
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Volume:']/following-sibling::div")))).click()
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Volume:']/following-sibling::div//div[text()='Greather than 0']")))).click()

# Options Range
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Options Range:']/following-sibling::div")))).click()
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Options Range:']/following-sibling::div//div[text()='All']")))).click()

# Expiration
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Expiration:']/following-sibling::div")))).click()
wait.until(EC.element_to_be_clickable((By.XPATH("//div[text()='Expiration:']/following-sibling::div//div[text()='All']")))).click()

相关问题