(1) Я видел, что вы ищете аккаунт и отправляете строку в поле глобального поиска на странице Salesforce. Мое первое предложение здесь - «Не копируйте и не вставляйте» свою учетную запись (или любое имя) прямо здесь. Salesforce Lighting - это тяжелый сайт, занимающий больше времени, чем обычный сайт. Итак, что вы можете сделать, это - дать символ за символом с небольшим ожиданием. Я знаю этот трюк, который вам может не понравиться, но он работает для меня на 100% - см. Ниже код:
for (int i = 0; i < value.length(); i++){
char character = value.charAt(i);
String inputCharacterText = new StringBuilder().append(character).toString();
driver.findElement(webElement).sendKeys(inputCharacterText);
Thread.sleep(50);
}
(2) Решение основного вопроса:
TestWait.waitForElementToBeVisible (driver, PageClass .searchAccount (driver));
это ваш WebElement: (Поскольку вы ищете конкретную c учетную запись, попробуйте создать свой xpath, используя заголовок, используя пользовательский текст - пример xpath "// * [@ title = 'AccountName'] ")
public static By searchAccount= By.xpath("You XPATH go here ");
public static By searchAccount(WebDriver driver) {
return searchAccount ;
}
Пожалуйста, используйте метод ожидания, упомянутый ниже, он прекрасно работает для меня:
класс равен" TestWait ", и вы определили метод ниже в классе
publi c stati c логический waitForElementToBeVisible (драйвер WebDriver, по ожидаемому элементу) {
boolean webElement = false;
logger.info("Executing waitForElementToBeVisible for page element");
try {
logger.info("Waiting for web element " + expectedElement + " with fluent wait");
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
Wait<WebDriver> wait = new
FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofSeconds(45))
.pollingEvery(Duration.ofMillis(200))
.ignoring(org.openqa.selenium.NoSuchElementException.class,org.openqa.
selenium.StaleElementReferenceException.class)
.ignoring(org.openqa.selenium.ElementNotVisibleException.class);
wait.until(ExpectedConditions.visibilityOfElementLocated(expectedElement));
webElement = true;
} catch (Exception e) {
logger.error(expectedElement + " : Not found the element on Page");
webElement = false;
Assert.fail("WebElement is not visible");
} finally {
driver.manage().timeouts().implicitlyWait(TestConstant.ImplicitWaitTime, TimeUnit.SECONDS);
}
return webElement;
}