我一直在尝试用Puppeteer填充Shadow-Root中的输入(#inputEmail)
下面是HTML的外观:
<login-form id="form"></login-form>
#shadow-root (closed)
<span id="reauth-email" class="reauth-email"></span>
<div class="form-group">
<label>Email</label>
<input type="text" id="inputEmail" name="" class="form-control" tabindex="1" placeholder="email@example.com" value="" autocomplete="off" autofocus="true" required="">
<label id="inputEmailTooltip" class="error" style="display: none">Required Field</label>
</div>
<login-form id="form"></login-form>
我在" puppet 师"身上试过这样的方法
const input = await $(page, `form::id(#inputEmail)`);
得到错误'form::id(#inputEmail)' is not a valid selector.
我也试过
const emailInput = document.querySelector('#form').shadowRoot.querySelector('#inputEmail')
并得到下面的错误
const emailInput = document.querySelector('#form').shadowRoot.querySelector('#inputEmail')
^
ReferenceError: document is not defined
如何使用Puppeteer或puppeteer-shadow-selector之类的库定位此输入?
1条答案
按热度按时间z4bn682m1#
我无法确认,但您应该能够使用内置的
pierce
选择器: