0

在 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:元素当前不可见

4

2 回答 2

0

I have never tested on email field still If it doesn't work, you can choose some work arounds like below: -

(1) Using JS

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

(2) Using low level webdriver code : -

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

Again, if you get any Codeception specific issues, please raise them here

I hope it helps.

于 2014-09-09T14:26:38.510 回答
0

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

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

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

它也适用于其他表单元素

于 2014-09-09T23:23:01.800 回答