2012-01-04 265 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