如何使用 Symfony 5 + Panther + Webbrowser + Chrome + setValue + Hmtl + Js 设置输入字段值

Mmx*_*Mmx 2 webbrowser-control setvalue chromium symfony-panther symfony5

如何在基本常规控制器而不是从 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
Run Code Online (Sandbox Code Playgroud)

Mmx*_*Mmx 5

答案很简单(我模拟在浏览器输入字段值中输入 - 用户名)

$crawler->filter('#ctl00_uxAuthenticationBlock_uxLoginText')->sendKeys('USERNAME');
Run Code Online (Sandbox Code Playgroud)

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

  • 有没有办法重置字段?因为 `sendKeys()` 似乎将内容附加到输入 (2认同)