У меня есть два элемента, как показано ниже
Элемент свойства
Xpath-> //sprk-accordion-item[@ng-reflect-title="Property"]//sprk-icon
Ремонтный элемент
Xpath-> //sprk-accordion-item[@ng-reflect-title="Repair"]//sprk-icon
Код, который я использую для нажатия на элемент
public async click(webElement: ElementFinder) {
try {
this.expectConditions.waitForElementToBeVisible(webElement);
this.moveToElement(webElement);
await webElement.click();
} catch (error) {
console.log('Error while clicking the element' + webElement.locator().toString() + 'Error:: ' + error);
}
}
public async waitForElementToBeVisible(element: ElementFinder) {
const ec = protractor.ExpectedConditions;
await browser.wait(ec.visibilityOf(element), this.time, 'Unable to find the element' + element.locator().toString());
}
public async moveToElement(webElement: ElementFinder) {
await browser.actions().
mouseMove(webElement).
perform();
}
click(element(by.xpath('//sprk-accordion-item[@ng-reflect-title="Property"]//sprk-icon'));
Моя проблема здесь, скажем, если я запускаю тест примерно 10 раз
4 раза выполняются тесты, как и ожидалось.когда я пытаюсь щелкнуть элемент свойства, элемент свойства получает щелчок.
4 раза тесты выполнялись не так, как ожидалось.когда я пытаюсь щелкнуть элемент свойства, элемент Repair получает щелчок, хотя я даже не написал никакого кода для щелчка элемента восстановления.
2 раза ни один элемент не получил щелчок.
Нет проблем с фокусом, потому что в коде клика я перемещаюсь к элементу, прежде чем щелкнуть по нему.Используемые мной x-пути уникальны и даже не являются динамическими.
, когда я размещаю browser.sleep(1000);
перед щелчком элемента свойства, тогда он щелкает, как ожидалось.Тем не менее, если это проблема времени, следует сказать, что элемент не найден.Но почему он щелкает по элементу Repair, когда локаторы уникальны ??
Надеюсь, кто-то ответит на этот вопрос.
Заранее спасибо