如何从BUTTON类型的字段中选择一个值

时间:2015-06-19 16:39:58

标签: button selenium-webdriver

场景:登录www.makemytrip.com - >点击我的帐户链接 - >点击个人资料选项 - >弹出个人信息

“个人信息”弹出窗口中的标题字段是'按钮'在makemytrip网站上。

我不确定如何从标题栏中选择价值(先生,夫人,小姐等)。标题字段具有默认值 - ' Mr。'但在我的剧本中,我想选择' Mrs.'。

以下代码不起作用。

driver.findElement(By.xpath(" //按钮[含有(@数据-ID,' PTitle&#39)]&#34))。的SendKeys("杜&#34);

我不能使用Select作为非类型下拉列表。 请注意我如何编码以从类型按钮的标题字段中选择不同的值。

2 个答案:

答案 0 :(得分:1)

感谢您的回复。我使用下面的代码,它按预期工作。

WebDriverWait wait = new WebDriverWait(driver,30); driver.findElement(By.xpath( “//按钮[含有(@数据-ID, 'PTitle')]”))点击(); wait.until(ExpectedConditions.elementToBeClickable(By.linkText( “太太”)))点击()。

答案 1 :(得分:0)

您的代码无法工作的原因是因为它需要2个事件才能实际更改该值。第一个操作是单击按钮元素,然后第二个操作是单击下拉列表中的另一个选项(在大多数情况下是div元素中的ul)。

在ruby中(只需转换为Java),您需要执行以下操作:

sal_elem = webdriver.find_element(xpath: "//button[contains(@data-id, 'PTitle')")
sal_elem.click()

=>因为你点击了按钮,你现在可以看到其他元素(先生,夫人,女士......),你可以找到并点击(例如改为女士)

new_sal_elem = webdriver.find_element(xpath: "//a[contains(@data-normalized-text, 'Ms.')]")
new_sal_elem.click()

显然这些是原始命令,应该始终放在begin-rescue块(或Java,try-catch)中,并且应该考虑等到。