Selenium - 选择下拉选项

时间:2012-01-04 01:24:28

标签: php 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'));

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

在选择值之前,请尝试使用WaitForElementPresent()(在您要选择的项目上)。 Selenium试图在它出现之前就找到它。

答案 1 :(得分:0)

你将如何在ruby中做到这一点。 假设您要选择 11月作为月份。

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

答案 2 :(得分:0)

我只使用JsonWireProtocol从Selenium 1迁移到Selenium 2.

根据您使用的PHP绑定,我使用Facebook's bindings执行了以下操作。

对您的代码做一些假设。 payment-credit-method-cc0-expirationMonth是您的选择的ID,您选择的月份是11月,其选项值为11

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

我相信你也可以选择“11月”(选项的可见标签)。

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

我用于Se1的绑定有一个$ this-> select()方法,我花了一点时间才意识到我正在做的就是选择一个元素然后点击它:/

答案 3 :(得分:0)

使用Facebook的JsonWireProtocol PHP绑定:

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

其中$ s是您的会话。 (来自Github issue