Python Django-使用硒选择自动完成灯光选择
我一直在试图找出如何从为我的测试创建的下拉列表中选择选项 这些回应,似乎已经过时了 我还尝试了一个选择 我将代码归结为:Python Django-使用硒选择自动完成灯光选择,python,django,selenium,testing,autocomplete,Python,Django,Selenium,Testing,Autocomplete,我一直在试图找出如何从为我的测试创建的下拉列表中选择选项 这些回应,似乎已经过时了 我还尝试了一个选择 我将代码归结为: self.selenium.find_elements_by_css_selector('.yourlabs autocomplete[data input id=“id_branch-autocomplete”][data value]) 其中id\u branch-autocomplete是输入数据的字段的名称。但是,它返回了一个空列表 有人在这方面取得了成功吗?我似乎找
self.selenium.find_elements_by_css_selector('.yourlabs autocomplete[data input id=“id_branch-autocomplete”][data value])
其中id\u branch-autocomplete
是输入数据的字段的名称。但是,它返回了一个空列表
有人在这方面取得了成功吗?我似乎找不到出现在浏览器控制台中的元素,我对CSS的理解也不够透彻,无法从文件中推断出合适的选择器。在最终解决这个问题之前,我放弃了这三次 Selenium需要等待名为
hilight
的类出现在页面上。只有这样,它才能尝试点击它
为此,我使用了从我之前的一个问题中得到的等待函数:
我将从一个适用于我的第一个领域的简单解决方案开始,因为它没有我的最终解决方案那么可怕
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
def wait_for_element(self, elm, by = 'id', timeout=10):
wait = WebDriverWait(self.driver, timeout)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, elm)))
return self.driver.find_element_by_class_name(elm)
wait_for_element(self, "highlight", "class").click()
其中,driver
是用于运行测试的适当WebDriver。该类在我使用的版本的第245行的autocomplete.js
中定义:
this.hilightClass='hilight'代码>
然而,这很快就被证明是无效的,因为一行中有几个自动完成字段的表单会留下名为highlight
的类,从而混淆webdriver。因此,我不得不使用xpath对其进行修改,这使其功能更加强大:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
def wait_for_element(self, elm, by = 'id', timeout=10):
wait = WebDriverWait(self.driver, timeout)
wait.until(EC.presence_of_element_located((By.XPATH, elm)))
return self.driver.find_element_by_xpath(elm)
wait_for_element(self,
"//span[@data-input-id='id_branch-autocomplete']/span[@data-value='1']",
"xpath").click()
id\u branch-autocomplete
应替换为任何字段的id
,并且@data value='x'
的数值可以是您想从下拉列表中选择的任何选项。第一个选项是1
,第二个选项是2
,依此类推。好极了 你能分享这个元素在DOM级别(html代码片段或页面链接)上的外观吗?不幸的是,这个网站不是实时的,而且我太新手了,无法从自动完成应用程序中提取相关代码。我在野外找一个例子。。