0

如何在基本常规控制器中设置而不是从 TestCase 扩展的 TestController,设置为 Web 文本值的输入字段?

    public function automatical_login_with_codes()
{
    $browser = new HttpBrowser(HttpClient::create());
    $client = Client::createChromeClient();
    $jsLink     = "document.querySelector('#ctl00_uxAuthenticationBlock_uxOpenLogin').click()";
    $crawler    = $client->request('GET', 'https://www.best.com/CategoryList.aspx?');
    $client->executeScript($jsLink);
    $client->waitFor('#ctl00_uxAuthenticationBlock_uxLoginText');//        $this->assertSame
    $crawler->filter('#ctl00_uxAuthenticationBlock_uxLoginText')->text('USERNAME'); <<-- NOT SET :(((
$check = $crawler->filter('#ctl00_uxAuthenticationBlock_uxLoginText')->text();
dd($check);  //<- result nothing
4

2 回答 2

2

答案很简单(我模拟输入浏览器输入字段值 - USERNAME)

$crawler->filter('#ctl00_uxAuthenticationBlock_uxLoginText')->sendKeys('USERNAME');

希望它能节省您的时间:)

于 2020-08-28T11:18:42.877 回答
0

另一种方法:

$client->findElement(WebDriverBy::cssSelector('#ctl00_uxAuthenticationBlock_uxLoginText'))->sendKeys('USERNAME');
于 2021-09-08T09:47:27.160 回答