2017-03-03 14 views
2

私は、MinkでSeleniumを使用して、多くの当社のWebサイトに自動的に登録しています。Selenium with Safari:選択入力からオプションを選択できません

これを行うには、3つの選択入力から生年月日を選択する必要があります。私はちょうど選択フィールドのxpathと私が望むオプションの値でselect-optionを使用します。

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()); 
関連する問題