如何使用 Selenium 和 JavaScript 等待 img src 属性发生变化?

How to wait for img src attribute to change using Selenium and JavaScript?

假设我有一个元素:

<div>
 <img src='src1'>
</div>

一段时间后 src 更改为其他 link
那么我该如何等待它(或一般的 属性)改变呢?

可能是这样的:

await driver.wait(until.elementAttributeChanged(el,'src'),3000);

等待 <img>src 属性使用 and you can use the following until 条件更改:

  • stalenessOf( element ):创建一个条件,等待给定元素变得陈旧。元素一旦从 DOM 中删除或加载了新页面,即被视为过时。

    let element = await driver.findElement(By.id('elementID'));
    await driver.wait(until.stalenessOf(element),1000);
    

只是为了让 DebanjanB 的回答更准确。
由于我们要指示某些元素的 src 属性值的变化,我们可以使用基于该元素的 src 属性值的定位器。所以代码可以是这样的:

let element = await driver.findElement(By.xpath('//img[@src="src1"]'));
await driver.wait(until.stalenessOf(element),1000);