![](/img/trans.png)
[英]Cant select a value from a drop down list using Selenium in python
[英]How to select a value from drop down based on the value given from Excel sheet using selenium/python
我目前正在学习自动化包含下拉列表的Web应用程序。事情是能够通过直接在xpath中提供它来从下拉列表中选择值。现在我正在尝试根据该值从下拉列表中选择一个值在Excel工作表中给出而不是直接给出。我不知道该怎么做。
请找到示例HTML
<select class="parent" id="parent_name" name="parentId">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
请找到我尝试下拉的代码
dropdown=driver.find_element_by_xpath('//select[@class="parent"]//option[2]');
dropdown.click();
为了从Excel中为文本框等其他东西选择值,我正在使用以下代码
driver = webdriver.Chrome
driver.fullscreen_window();
driver.get('url');
time.sleep(5)
Workbook=xlrd.open_workbook("excel path")
Details = Workbook.sheet_by_index(0);
city=Details .cell(1,0)
Citytextbox=driver.find_element_by_xpath('//input[@id="city"]');
Citytextbox.send_keys(city.value);
我期望的是,如果我在excel中将值赋为“ A”,它应该能够从下拉列表中选择它,而不是使用spyder-python 3.7对其进行硬编码。
更新 :我尝试了以下两种方法来面对以下问题。您能指导我解决什么问题。 第一种方法,似乎正在发生,即使选择了下拉菜单,代码仍在运行,并且未显示任何错误。似乎没有纳入代码
class test:
def test(self):
type=details.cell(1,13);
dropdown=selected(self.driver.find_element_by_xpath('//select[@class="parent"]'));
dropdown.select_by_value(str(type));
time.sleep(5);
第二种方法 :它显示-module'对象是不可调用的。
type=details.cell(1,13);
dropdown=selected(driver.find_element_by_xpath('//select[@class="parent"]'));
dropdown.select_by_value(str(type));
当我通过上述方法尝试时,出现此错误TypeError:“模块”对象不可调用
您将要使用Select对象 。 首先,从Excel文档中提取相关值(您需要调整以下内容以定位相关单元格,我根据您的问题提供了一个示例):
Workbook = xlrd.open_workbook("excel path")
Details = Workbook.sheet_by_index(0);
selectValue = Details .cell(1,0)
然后,您将需要使用如下所示的值:
select = Select(self.driver.find_element_by_id("parent_name"))
select.select_by_value(str(selectValue))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.