python - 如何从非选择标签的下拉列表中选择一个选项?
问题描述
我正在尝试从下拉菜单中选择一个值。我尝试了很多在这里找到的解决方案,但没有任何效果,有时我有错误无法滚动查看。
代码试验:
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.action_chains import ActionChains
browser = webdriver.Chrome() # Optional argument, if not specified will search path.
browser.get('https://dzairannonces.com/posts/create');
mySelectElement = browser.find_element_by_id('parentId')
dropDownMenu = Select(mySelectElement)
我想从下拉表单中选择一个值,并从我们选择第一个下拉表单时出现的第二个下拉表单中选择另一个值
我也试过这段代码,但不起作用
import unittest
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
class Drpdowm(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def test_drpdown(self):
driver = self.driver
driver.maximize_window()
driver.get('https://dzairannonces.com/posts/create')
time.sleep(10) # Let the user actually see something!
s1=Select(driver.find_element_by_id('parentId'))
print(s1.options)
for opt in s1.options:
s1.select_by_value(' 315 ')
def tearDown(self):
self.driver.quit()
解决方案
正确的代码是
s1=Select(driver.find_element_by_id('parentId'))
s1.select_by_value('315')
当涉及到额外的空格或换行符时,HTML 属性非常严格,您需要完全按原样提供值
请参阅为使用标签而设计的 Python WebDriver API 的选择支持章节<select>
关于整体测试设计,一个好主意是实现页面对象模型设计模式,它将允许您拆分 UI 和测试逻辑,并使您的测试健壮、可靠且更容易重构。有关详细信息,请参阅页面对象一章。
推荐阅读
- arrays - Xcode 说我的数组超出范围,但我可以确认我的数组没有超出范围
- mongodb - 在 Go 中删除 MongoDB 中的数组元素
- reactjs - componentWillReceiveProps() 不会重新触发发送新的道具
- python - 我不能在公式中使用变量吗?
- python - 如何更改它以不允许最终计数中出现负数?
- r - 创建矩阵,其列由向量值填充,行名来自不同的向量值
- python - 如何立即确定在特定范围内使用了多少次“0”到“9”
- android - 模拟器无法运行我的应用程序
- python - Python脚本找不到导入的函数
- azure-aks - AKS 上的 SQL Server 2019 BDC 部署停留在检查控制器日志以获取更多详细信息