2012-01-04 319 views
0

我試圖按值選擇下拉選項。不過,我似乎無法用click或type函數來做這件事。Selenium - 選擇下拉選項

我正在使用JsonWireProtocol,只是做了簡單的調用,但我似乎一直卡在這一段時間。

我已經嘗試了以下

$element = $this->get_element('payment-credit-method-cc0-expirationMonth'); 
$this->click_element($element); 

$this->type('payment-credit-method-cc0-expirationMonth', array('U+E015','U+E000','U+E015','U+E000')); 

誰能幫助?

+0

英文句子由句號分隔,而不是逗號。你的問題是什麼?你有什麼嘗試? – 2012-01-04 01:26:01

+0

我的不好,一直工作很長時間和一個壞習慣,更新信息雖然 – 2012-01-04 01:35:16

+0

好的,你的方法出了什麼問題? – 2012-01-04 17:23:13

回答

0

這你將如何做它在紅寶石。 假設您想選擇11月作爲月份。

@driver.find_element(:id, "payment-credit-method-cc0-expirationMonth'").find_element(:css,"option[value='11']").click 
0

在選擇一個值之前嘗試使用WaitForElementPresent()(在要選擇的項目上)。硒甚至在我猜測出現之前就試圖找到這個元素。

+0

已經有了 – 2012-01-05 01:43:41

0

我只使用JsonWireProtocol從Selenium 1遷移到Selenium 2。

根據您使用的是哪種PHP綁定,我使用Facebook's bindings進行了以下操作。

對你的代碼做了一些假設。支付信用法-CC0-expirationMonth是你選擇的ID,而你選擇的月份是11月,11

$this->session->element("xpath", "//select[@id='payment-credit-method-cc0-expirationMonth']/option[@value='11']")->click() 

其期權價值,我相信你可以選擇「月」(該選項的可見標籤)通過這樣做。

$this->session->element("xpath", "//select[@id='payment-credit-method-cc0-expirationMonth']/option[text()='November']")->click() 

我用Se1的綁定的記錄了$這個 - > select()方法,我花了一點實現所有我做的是選擇一個元素並單擊它:/

0

使用Facebook的JsonWireProtocol PHP綁定:

$el=$s->element("css selector", 'select[id="my_id"] option[value="gbp"]'); 
$el->click(); 

其中$ s爲您的會話。 (來自Github issue