Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击Selenium(Python)中给定选项列表中的正确选项_Python_Selenium - Fatal编程技术网

单击Selenium(Python)中给定选项列表中的正确选项

单击Selenium(Python)中给定选项列表中的正确选项,python,selenium,Python,Selenium,我正在尝试输入“我拥有的货币”文本框。此输入为变量“currency”。在文本框中输入后,它会显示许多选项。我想对输入的3个字母的货币代码和文本框在下拉列表中显示的选项进行不区分大小写的匹配,然后选择正确的选项。 我正在测试的页面: 我的代码中的return语句不正确。我如何进一步实现我的目标 请,任何帮助都将不胜感激。我是硒新手。为了等待下拉结果,您的操作顺序应如下所示: 清除“我拥有的货币”下拉列表 单击它(不完全确定是否需要此操作,请测试它) 等待所有值 发送值(“澳元”)#不是澳元,因

我正在尝试输入“我拥有的货币”文本框。此输入为变量“currency”。在文本框中输入后,它会显示许多选项。我想对输入的3个字母的货币代码和文本框在下拉列表中显示的选项进行不区分大小写的匹配,然后选择正确的选项。 我正在测试的页面:

我的代码中的return语句不正确。我如何进一步实现我的目标


请,任何帮助都将不胜感激。我是硒新手。

为了等待下拉结果,您的操作顺序应如下所示:

  • 清除“我拥有的货币”下拉列表
  • 单击它(不完全确定是否需要此操作,请测试它)
  • 等待所有值
  • 发送值(“澳元”)#不是澳元,因为搜索结果中也有沙特里亚尔
这部分代码应如下所示:

wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#havePicker > div'))).click()
currency_have = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '#havePicker > div > input')))

currency_have.clear()
currency_have.click()

options = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#havePicker > div > ul li')))
currency_have.send_keys("Australian dollar")
请注意,
AUD
上有两个结果。这就是我使用货币全名的原因。如果只想使用aud,请使用
split()
在此处检查如何使用它
然后改进for循环。

您在一个循环中提出了许多问题。主要问题是什么?@vitalis我很抱歉。我编辑了这个问题。我希望我能用更好的语言解释我的问题。检查我的答案,我想这会对你有帮助。另外,如果其他人决定回答,可能会有所帮助。
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#havePicker > div'))).click()
currency_have = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '#havePicker > div > input')))

currency_have.clear()
currency_have.click()

options = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#havePicker > div > ul li')))
currency_have.send_keys("Australian dollar")