在该网站中,我正在寻找如何在“单个”下拉框中和“分组”下拉框中选择项目(例如“绿色”)。
我尝试先单击下拉列表,然后尝试找到其中的元素进行单击,但我不能
你有什么想法吗?通过分组下拉菜单,我什至找不到单击它的 xpath
提前致谢
driver = webdriver.Chrome()
driver.get("https://react-select.com/home")
driver.maximize_window()
driver.implicitly_wait(20)
driver.find_element_by_xpath("//div[@class='select__value-container select__value-container--has-value css-1hwfws3']").click()
driver.find_element_by_xpath("//*[@text()='Green']").click()
从文本中删除@
driver.find_element_by_xpath("//*[text()='Green']").click()
要单击不可见的选项:
option=driver.find_element_by_xpath("//*[text()='Silver']")
driver.execute_script("arguments[0].scrollIntoView();", option)
option.click()
您必须先滚动到该位置,然后单击
要从 Single 下拉框中选择 Green,您需要为 element_to_be_clickable()
引入
WebDriverWait,并且可以使用以下任一定位器策略:
driver.get("https://react-select.com/home")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.basic-single > div.select__control > div.select__value-container"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'select__menu')]/div[contains(@class, 'select__menu-list')]//div[contains(@class, 'select__option') and text()='Green']"))).click()
我无法自动化react-select下拉列表,原因是一旦你点击它,它就会呈现列表,但我将分享对我来说效果很好的解决方案,我只会给你一个想法如何实现它,因为我使用了Javascript。
我分享我的答案是因为我找到的解决方案都不适合我。我想要的是选择选择列表的多个值:
react_select_button = WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="root"]/div/div..../div[1]')))
react_select_button.click()
driver.find_element(By.XPATH, "//input[@id='react-select-input']").send_keys("my-option-1")
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, "react-select-listbox"))).click()
driver.find_element(By.XPATH, "//input[@id='react-select-input']").send_keys("my-option-2")
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, "react-select-listbox"))).click()
button_select = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="root"]/div/div/.../button[1]')))
button_select.click()