通过名称获取下拉菜单选项值选择

时间:2018-12-31 03:02:48

标签: python selenium-webdriver xpath drop-down-menu html-select

我是python的新手,我试图理解如何单击下拉菜单,我在菜单中通过名称而不是值来选择它,即使在整个代码中多次显示该名称,因为每件衬衫都有不同的名称夹克可以有14123,而衬衫可以有14133作为值。

这是我的代码:

browser = webdriver.Chrome()

Size=browser.find_element_by_xpath("//select[@name='X-Large']/option[@value='12218866729085']").click()

一件衬衫的HTML Code EX:

select id="product-select" name="id" class="">

option value="12218866630781">Small</option>
option value="12218866663549">Medium</option>
option value="12218866696317">Large</option>
option value="12218866729085">X-Large</option>

给出此错误:

  

(“ // select [@ name ='X-Large'] / option [@value ='12218866729085']”)。click()   AttributeError:“ str”对象没有属性“ click”

2 个答案:

答案 0 :(得分:0)

您可以使用此xpath-// select / option [text()='Medium']

答案 1 :(得分:0)

它是一个选择下拉列表,因此您需要使用select命令从下拉列表中选择值。例如在Java

  Select dropdown = new Select(driver.findElement(By.id("product-select")));

  dropdown.selectByVisibleText("Medium"); //to select medium

我们可以使用索引或值来代替可见文本,例如

 dropdown.selectByIndex(1); //second option in dropdown as count starts from 0 in java

 dropdown.selectByValue("12218866663549"); //using value attribute