在 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")]'))