如何在Codeception验收测试中获取<input type =“email”/>的WebGuy-&gt; fillField?

时间:2014-09-09 07:09:49

标签: unit-testing automation acceptance-testing codeception acceptance

在Codeception中,fillField可以正常工作 <input type="text" name="email">,但在<input type="email" name="email">

时无效

我尝试使用以下代码

$I->fillField('input[name=email]', 'user@domain.com');

同时使用$I->fillField('email', 'user@domain.com'); 但它不起作用。我收到以下错误。

ElementNotVisibleException:元素当前不可见

2 个答案:

答案 0 :(得分:0)

我从未在电子邮件领域进行过测试如果它不起作用,您可以选择以下工作: -

(1)使用JS

$I->executeJS('window.document.getElementsByName('email')[0].value='###value###'');

(2)使用低级webdriver代码: -

$I->executeInSelenium(function (\Webdriver $webdriver) {
    $webdriver->findElement('###XPATH###')->sendKeys(###value###);
});

同样,如果您遇到任何特定于Codeception的问题,请提出here

我希望它有所帮助。

答案 1 :(得分:0)

我实际上得到了答案,现在我可以通过XPATH定位任何表单元素而无需运行executeInSelenium

所以在chrome / firefox中我检查dom并右键单击并复制xpath,

作为一个例子:
$I->fillField('//*[@id="register-form"]/fieldset/section[3]/div/div/label/input', 'user@domain');

它也适用于其他表单元素