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

Java 使用FirefoxDriver等待页面加载/元素在Selenium中可见,java,wait,selenium-firefoxdriver,Java,Wait,Selenium Firefoxdriver,我想知道当我使用FirefoxDriver时,等待页面加载/elemnt在Selenium中可见的最佳选项是什么。我不想使用dom树 我知道我可以使用一些线程王。睡眠(数字),但我不喜欢设置一个固定的数字,因为我想继续尽可能快 例如,我发现: Point position=driver.findElement(By.xpath(xpath)).getLocation() 我也尝试过: WebDriverWait wait = new WebDriverWait(driver, 20); wait

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

我知道我可以使用一些线程王。睡眠(数字),但我不喜欢设置一个固定的数字,因为我想继续尽可能快

例如,我发现: Point position=driver.findElement(By.xpath(xpath)).getLocation()

我也尝试过:

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath)));
但我只得到预期的条件失败,即使我知道这个xpath存在

当它为空或不可能找到时,是否可以将它与其他of一起使用? 我的问题是,我无法找到/理解我尝试的东西是否会影响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...")

你可以试试这个,希望这个能很好地工作……对我来说不起作用。如果我没有错的话,这个会在DOM中查找,因为我禁用了DOM,所以它不起作用。