#java #python-3.x #selenium-webdriver #automation
#Ява #python-3.x #селен-веб-драйвер #автоматизация
Вопрос:
Существует веб-элемент(сообщение об успехе или сбое), который отображается на экране только в течение 3 секунд. Как я могу гарантировать, что элемент отображается на экране в течение 3 секунд с помощью selenium java ИЛИ python?
Ответ №1:
Вы можете использовать java.time.LocalDateTime
и java.time.temporal.ChronoUnit
комбинировать с org.openqa.selenium.support.ui.ExpectedConditions
.
В этом примере измеряется время, в течение которого кнопка не включена:
package selenium; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class DeviTimeTest { public static String userDir = System.getProperty("user.dir"); public static String chromedriverPath = userDir "\resources\chromedriver.exe"; public static WebDriver driver; public static void main(String[] args) { WebDriver driver = startChromeDriver(); driver.get("https://demoqa.com/dynamic-properties"); LocalDateTime start = LocalDateTime.now(); WebElement button = driver.findElement(By.id("enableAfter")); new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(button)); LocalDateTime finish = LocalDateTime.now(); System.out.println("Button was disabled for " ChronoUnit.MILLIS.between(start, finish) " ms."); driver.quit(); } public static WebDriver startChromeDriver() { System.setProperty("webdriver.chrome.driver", chromedriverPath); ChromeOptions options = new ChromeOptions(); options.addArguments("--ignore-certificate-errors"); options.addArguments("--start-maximized"); options.addArguments("--disable-notifications"); driver = new ChromeDriver(options); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); return driver; } }
Выход:
Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 47769 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. Pro 06, 2021 8:00:55 DOP. org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C Button was disabled for 4404 ms.