在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:元素当前不可见
答案 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');
它也适用于其他表单元素