等待页面加载/使用FirefoxDriver在Selenium中可见的元素

问题描述

我想知道当我使用FirefoxDriver时,等待页面加载/硒中可见的最佳方法是什么?我不想使用dom树。

我知道我可以使用Thread.sleep(number)之王,但是我不想设置固定的数字,因为我希望尽快继续。

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

我也尝试过:

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

但是即使您知道此xpath存在,我也只能得到预期的条件失败。

是否可以将其与“ While”一起使用,还是找不到? 我的问题是我找不到/无法理解我尝试的操作是否影响了DOM,因此“页面所有者”可以看到它不是人在搜索页面

我的代码如下:

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

在getDriver()中,我设置了属性,还设置了“ fp.setPreference(” dom.webdriver.enabled“,false);”

解决方法

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

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

您可以尝试这一方法,希望它能完美工作...?