2017-03-03 183 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());