2017-03-03 117 views
2

我正在使用Selenium和Mink在多个我们的网站中自动注册。Selenium with Safari:无法从选择输入中选择选项

要做到这一点,你必须从三个选择输入中选择你的出生日期。我只是在选择字段的xpath和我想要的选项的值中使用选择选项。

它可以在Firefox和Chrome中正常工作,但在Safari中可以正常工作,并且其他任何事情都不会发生。没有任何例外或任何事情,它只是对选择字段没有做任何事情,然后测试的其余部分失败,因为注册不起作用。

选择字段的CSS是这样的:

<select name="Signup:Birthday[day]" size="1" class=" date_day" id="Birthday"> 
<option value="" selected="selected">---</option> 
<option value="1">01</option> 
<option value="2">02</option> 
<option value="3">03</option> 
....... 
</select> 

我使用XPath //*[@id="Birthday"]和期权3,但在Safari它只是什么都不做。

public function selectState($option, $name) { 
    $page   = $this->getSession()->getPage(); 
    $selectElement = $page->find('xpath', '//*[@id="Birthday"]');   
    $selectElement->selectOption($option); 
} 

任何想法?

+0

' “3”'..你怎么用,我使用XPath // * [@ ID = “生日”]和选项?分享你的代码 – Andersson

回答

1

你可以试试:

JavascriptExecutorUtils 
    .setSelectedOptionByDisplayValue(driver, webSeleniumElement.getWebElement(), "texte"); 
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; 
jsExecutor.executeScript("arguments[0].onchange();", webSeleniumElement.getWebElement());