您的当前位置:首页正文

java选择不同下拉执行不同,使用(启用Java?)下拉选择的Python选择

来源:九壹网

是编码的新手,并一直试图选择一个下拉框来选择基础选项。能够与该页面上的其他下拉菜单进行交互,尽管这个特殊的菜单似乎有所不同,因为我无法访问它/与之交互

我提供了网页下拉框的快照,特定下拉框的源代码以及我已经尝试过并出错的代码。

将不胜感激任何帮助/指针。是编码的新手(python或HTML!),但对Excel VBA有所了解。

尝试粘贴图片,尽管似乎我还不适合直接粘贴。我正在尝试与页面上的“选择基金”下拉框进行交互。尝试了以下代码:

browser.find_element_by_id('strategy').send_keys(fund_strat) #works fine

browser.find_element_by_xpath('//*[@id="share-class"]').click()

#this line directly above does not work, including variants below:

browser.find_element_by_xpath('THE BELOW XPATHS').click()

//*[@id="price-performance-form"]/div[3]

//*[@id="price-performance-form"]/div[3]/div

//*[@id="price-performance-form"]/div[3]/div/a

//*[@id="price-performance-form"]/div[3]/div/a/span

//*[@id="share-class"]

//*[@id="share-class"]/option[1]

Also tried using CSS selector

browser.find_element_by_css_selector('a.option-selected').click()

browser.find_element_by_css_selector('a.option-selected').send_keys('NAME OF FUNDS ETC')

解决方案

如果以下行适合您,

browser.find_element_by_xpath('//*[@id="share-class"]').click()

#this line directly above does not work, including variants below:

您需要等待DOM上可见的元素。即,css =

如今,大多数Web应用程序都在使用AJAX技术。因此,您需要添加一个等待时间(直到元素在页面上可见或在DOM上加载)。

因此,尝试使用Selenium Waits(输入以下代码):

from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)

element = wait.until(EC.element_to_be_clickable((By.XX, 'element')))

XX = CSS,XPATH,ID等

现在,如果要在选定的文本框上书写,则只需尝试在input元素上发送键即可。

browser.find_element_by_css_selector('.editable-select input')

为了获得更好的选择器,请使用父元素来定位确切的元素。

CSS = 'div[class$="custom-select custom-select-open"] .editable-select input'

如果要选择下拉选项,则知道值。尝试使用以下CSS。

browser.find_element_by_css_selector('select option[value$="Your Value"]')

要么

如果您不知道这些值,请在输入文本框后附加整个DOM feed。我将尝试通过下拉菜单项来帮助您。

另外,您还需要锻炼一些其他步骤。使用内部文本获取所有元素。

注意:您可以使用XPATH进行元素的文本搜索。范例:xpath = "//*[contains(text(),'your text')]"

因篇幅问题不能全部显示,请点此查看更多更全内容

Top