如何从下拉菜单中选择一个选项

时间:2020-01-28 10:35:50

标签: python selenium

我在使用硒导航网站时遇到问题。这是我的代码:

microsoftTeams.authentication.getAuthToken(authTokenRequest);

但是,我得到了例外:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://webtrader.binary.com/v2.2.8/main.html#')

resources = driver.find_element_by_id('ui-id-1')
resources.click()

我不明白我哪里出了错。我正在尝试从标有“资源”的下拉菜单中访问“历史数据”。有人可以帮我访问它。也许我的资源ID错了。您也可以检查一下。

2 个答案:

答案 0 :(得分:1)

您要单击以打开下拉菜单的元素是元素resources的上一个兄弟

from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.select import By
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)

driver.find_element_by_class_name('resources').click()
historical_data = wait.until(ec.visibility_of_element_located((By.ID, 'ui-id-4')))

答案 1 :(得分:0)

这里发生了很多事情。首先,您的代码缺少等待时间。没有它,将始终失败,因为页面是动态加载的。了解有关Waits的信息。

第二,您在resources = driver.find_element_by_id('ui-id-1')的下拉菜单中找到该元素,然后尝试单击它。但是没有打开下拉菜单。您应该先单击它,然后等待该选项出现,然后再单击“历史数据”。