如何处理 div 类型的下拉列表而不是 selenium/python 中的 select
How to handle dropdown of type div instead of select in selenium/python
我试图让我的机器人点击下拉菜单,select 选项 A 并刷新页面。我遇到的问题是我无法使用 Select,因为我收到错误消息说它不能在 上使用 select。这是对有问题的下拉菜单的检查。我如何进入 select 选项 A?
<div class="Select-value"><span class="Select-value-label" role="option" aria-selected="true"
id="react-select-2--value-item">CrazyFortune</span></div>
我无法共享该网站,因为它包含敏感信息,但这是我的代码:
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
import openpyxl
import xlsxwriter
#my private module with sensitive info
import pwx_module as pwx
#delay libraries
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
#imports
driver_path = r'C:\Users\name\chromedriver.exe'
outcome = openpyxl.load_workbook(r'C:\Users\name\outcome.xlsx')
driver = webdriver.Chrome(driver_path)
driver.get('link_hidden')
# waiting for login table to load
try:
element = WebDriverWait(driver,10).until(
ec.presence_of_element_located((By.XPATH,'//*[@id="email"]'))
)
except:
driver.quit()
#entering sensitive info
driver.find_element_by_id("email").send_keys(pwx.em)
driver.find_element_by_id("password").send_keys(pwx.pw)
driver.find_element_by_xpath('//*
[@id="appContainer"]/div/form/button').click()
# waiting for page to load
try:
element = WebDriverWait(driver,10).until(
ec.presence_of_element_located((By.XPATH,'//* [@id="testing"]/section/section[1]/div[1]/header/div/div/div[1]/div[2]/div''))
)
except:
driver.quit()
# THIS IS WHERE THE PROBLEM IS!!! - code above works fine
drp = select(driver.find_element_by_xpath('//*
[@id="testing"]/section/section[1]/div[1]/header/div/div/div[1]/div[2]/div'))
drp.select_by_visible_info('A')
driver.refresh()
# writing info into excel file, code below works fine
cell = outcome['import']
withdrawal_cell = 'B19'
cell[withdrawal_cell].value = w.text
driver.quit()
outcome.save(r'C:\Users\giuse\Desktop\Back office bot\outcome.xlsx')
尝试传递正确的 xpath
driver.find_element_by_xpath("//div/span[@id='react-select-2--value-item']").click()
我试图让我的机器人点击下拉菜单,select 选项 A 并刷新页面。我遇到的问题是我无法使用 Select,因为我收到错误消息说它不能在 上使用 select。这是对有问题的下拉菜单的检查。我如何进入 select 选项 A?
<div class="Select-value"><span class="Select-value-label" role="option" aria-selected="true"
id="react-select-2--value-item">CrazyFortune</span></div>
我无法共享该网站,因为它包含敏感信息,但这是我的代码:
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
import openpyxl
import xlsxwriter
#my private module with sensitive info
import pwx_module as pwx
#delay libraries
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
#imports
driver_path = r'C:\Users\name\chromedriver.exe'
outcome = openpyxl.load_workbook(r'C:\Users\name\outcome.xlsx')
driver = webdriver.Chrome(driver_path)
driver.get('link_hidden')
# waiting for login table to load
try:
element = WebDriverWait(driver,10).until(
ec.presence_of_element_located((By.XPATH,'//*[@id="email"]'))
)
except:
driver.quit()
#entering sensitive info
driver.find_element_by_id("email").send_keys(pwx.em)
driver.find_element_by_id("password").send_keys(pwx.pw)
driver.find_element_by_xpath('//*
[@id="appContainer"]/div/form/button').click()
# waiting for page to load
try:
element = WebDriverWait(driver,10).until(
ec.presence_of_element_located((By.XPATH,'//* [@id="testing"]/section/section[1]/div[1]/header/div/div/div[1]/div[2]/div''))
)
except:
driver.quit()
# THIS IS WHERE THE PROBLEM IS!!! - code above works fine
drp = select(driver.find_element_by_xpath('//*
[@id="testing"]/section/section[1]/div[1]/header/div/div/div[1]/div[2]/div'))
drp.select_by_visible_info('A')
driver.refresh()
# writing info into excel file, code below works fine
cell = outcome['import']
withdrawal_cell = 'B19'
cell[withdrawal_cell].value = w.text
driver.quit()
outcome.save(r'C:\Users\giuse\Desktop\Back office bot\outcome.xlsx')
尝试传递正确的 xpath
driver.find_element_by_xpath("//div/span[@id='react-select-2--value-item']").click()