gpt4 book ai didi

python - 如何使用 selenium/python 根据 Excel 工作表给出的值从下拉列表中选择一个值

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:37 27 4
gpt4 key购买 nike

我目前正在学习自动化一个包含下拉列表的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);

第二种方法:它显示模块'对象不可调用。添加导入选择为选定

type=details.cell(1,13);
dropdown=selected(driver.find_element_by_xpath('//select[@class="parent"]'));
dropdown.select_by_value(str(type));

当我通过上述方法尝试时,出现此错误类型错误:“模块”对象不可调用

最佳答案

您将需要使用 Select object 。首先,从 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))

关于python - 如何使用 selenium/python 根据 Excel 工作表给出的值从下拉列表中选择一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56887934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com