在 Selenium 中通过部分 Id 定位输入文本
Locate input text by partial Id in Selenium
我需要使用 Selenium HTML 定位文本并将其输入到文本字段中:
<input slot="input" class="form-control" id="abc-gib-input-38303-70ft6l7k2g" aria-invalid="false" aria-required="true" aria-labelledby="label-abc-gib-input-38303-70ft6l7k2g label-abc-form-38302-42pti7lz8z" aria-describedby="help-text-abc-gib-input-38303-70ft6l7k2g feedback-abc-gib-input-38303-70ft6l7k2g feedback-abc-form-38302-42pti7lz8z help-text-abc-form-38302-42pti7lz8z" type="text" placeholder="" name="login" autocomplete="off">
问题是每次页面重新加载时 id 都会发生变化 - 这部分保持不变“abc-gib-input-38303-”。
如何select这个元素?
我试过了:
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input"]'))
它不起作用。
您的 XPath 表达式中缺少右括号 )
。
而不是
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input"]'))
应该是
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input")]'))
我需要使用 Selenium HTML 定位文本并将其输入到文本字段中:
<input slot="input" class="form-control" id="abc-gib-input-38303-70ft6l7k2g" aria-invalid="false" aria-required="true" aria-labelledby="label-abc-gib-input-38303-70ft6l7k2g label-abc-form-38302-42pti7lz8z" aria-describedby="help-text-abc-gib-input-38303-70ft6l7k2g feedback-abc-gib-input-38303-70ft6l7k2g feedback-abc-form-38302-42pti7lz8z help-text-abc-form-38302-42pti7lz8z" type="text" placeholder="" name="login" autocomplete="off">
问题是每次页面重新加载时 id 都会发生变化 - 这部分保持不变“abc-gib-input-38303-”。
如何select这个元素?
我试过了:
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input"]'))
它不起作用。
您的 XPath 表达式中缺少右括号 )
。
而不是
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input"]'))
应该是
await driver.findElement(By.xpath('//*[contains(@id,"abc-gib-input")]'))