【问题标题】:Wait for page load / element visible in Selenium using FirefoxDriver使用 FirefoxDriver 等待 Selenium 中可见的页面加载/元素
【发布时间】:2021-02-17 02:10:08
【问题描述】:

我想知道当我使用 FirefoxDriver 时,等待页面加载/元素在 Selenium 中可见的最佳选择是什么。我不想使用 dom 树。

我知道我可以使用一些 Thread.sleep(number) 之王,但我不喜欢设置一个固定的数字,因为我想尽可能快地继续。

我发现例如: 点位置 = driver.findElement(By.xpath(xpath)).getLocation();

我也试过了:

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath)));

但即使你知道这个 xpath 存在,我也只会得到预期的条件失败。

是否可以将其与附加的“虽然它是 NULL 或不可以找到”一起使用? 我的问题是我无法找到/理解我尝试的东西是否会影响 DOM,因此“页面所有者”可以看到它不是人类搜索页面。

我的代码如下所示:

FirefoxDriver driver = Webdriver.getDriver();
        
String BASE_URL = "https://www.webpage.com/";
driver.get(BASE_URL);

在 getDriver() 中,我设置了属性以及 "fp.setPreference("dom.webdriver.enabled", false);"

【问题讨论】:

    标签: java wait selenium-firefoxdriver


    【解决方案1】:

    我一直在用这个,这个对我来说很好用

    try:
            WebDriverWait(context.driver, timeout).until(
                expected_conditions.presence_of_element_located((By.CSS_SELECTOR, '#element')))
        except():
            print("Element didn't load yet...")
    

    你可以试试这个希望这个能完美运行...?

    【讨论】:

    • 对我不起作用。如果我没记错的话,这个是在 DOM 中查找的,因为我禁用了 DOM,所以它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2017-08-14
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多