我无法找到页面上的元素。我的页面可能包含0到20之间的任何元素。我想找到元素并验证元素的文本。
这是我的要素:
<span _ngcontent-c47="" class="vehicle-title h5 m-0">
<a _ngcontent-c47="" href="https://abc-xyz.com/pqr/classic/4183C62C-A7AE-45BA-BAB8-0DD7082A8A30">2018 Acura MDX </a>
</span>
<span _ngcontent-c47="" class="vehicle-title h5 m-0">
<a _ngcontent-c47="" href="https://abc-xyz.com/pqr/classic/4183C62C-A7AE-45BA-BAB8-0DD7082A8A28">2016 ACURA MDX </a>
</span>
我尝试了一系列在线建议的解决方案,包括下面的解决方案,但始终找不到元素异常。
await driver.findElements(webdriver.By.className('vehicle-title h5 m-0')).then(async function(elements_arr) {
//some code
}
await driver.findElements(webdriver.By.xpath('//span[contains(@class, "vehicle-title h5 m-0")]')).then(async function(elements_arr) {
//some code
}
答案 0 :(得分:0)
根据您共享的HTML,您可以使用以下解决方案找到元素:
2018 Acura MDX
:
await driver.findElements(webdriver.By.xpath("//span[@class='vehicle-title h5 m-0']/a[contains(., '2018 Acura MDX')]")).then(async function(elements_arr) {
//some code
}
2016 ACURA MDX
:
await driver.findElements(webdriver.By.xpath("//span[@class='vehicle-title h5 m-0']/a[contains(., '2016 Acura MDX')]")).then(async function(elements_arr) {
//some code
}
答案 1 :(得分:0)
如果遇到需要加载一些元素的情况,请使用类似以下内容的
await driver.wait(until.elementLocated(by.xpath("//*[@class='vehicle-title h5 m-0']")), 10000).thenDoSomethingWithTheElement();
实际上,使用async \ await语法可以使视图更美丽,更清晰,并且不需要使用promiceses