相关疑难解决方法(0)

等到页面加载Selenium WebDriver for Python

我想刮掉由无限滚动实现的页面的所有数据.以下python代码有效.

for i in range(100):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

这意味着每次向下滚动到底部时,我都需要等待5秒钟,这通常足以让页面完成加载新生成的内容.但是,这可能不是时间效率.页面可以在5秒内完成加载新内容.每次向下滚动时,如何检测页面是否已完成加载新内容?如果我能检测到这一点,一旦我知道页面加载完毕,我可以再次向下滚动以查看更多内容.这更节省时间.

python selenium execute-script

142
推荐指数
13
解决办法
27万
查看次数

隐式、显式和 fluentwait 之间的差异

之间有什么具体区别implicitwait(),explicitwait()并fluentwait()?你能用例子解释一下吗?

selenium synchronization

5
推荐指数
1
解决办法
7725
查看次数

用显式等待替换隐式等待(selenium webdriver & java)

如何用显式等待替换这种隐式等待?

驱动程序 = 新的 ChromeDriver(功能);

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

这在 Before 方法中使用。我能够替换代码中的所有 Thread.sleep(),但我不确定对这个做了什么。

java selenium selenium-webdriver webdriverwait implicitwait

5
推荐指数
1
解决办法
3930
查看次数

在selenium中使用隐式等待

我是初学者。我理解等待的基本作用,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它被放置在加载 URL 之前。那么,是否只是等待 URL 加载或查找元素或两者兼而有之?如果我在 try 块中使用隐式等待一次,它是否适用于我在代码中执行的每个元素搜索?

from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
Run Code Online (Sandbox Code Playgroud)

selenium selenium-chromedriver selenium-webdriver geckodriver implicitwait

4
推荐指数
1
解决办法
2万
查看次数

如何通过 Selenium 正确配置隐式/显式等待和 pageLoadTimeout?

我目前有以下设置,但我不确定我的等待(隐式和 pageLoadTimeout)是否有效。这是正确的实现吗?通过将它放在@Before("@setup") 中,它是否适用于每个场景或步骤定义运行?每次我打电话给@Given、@When.. 等时,司机会相应地等待吗?

@Before("@setup")
    public void setUp() {

        driver.manage().deleteAllCookies();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);


    }
Run Code Online (Sandbox Code Playgroud)

为什么需要给下面的wait分配一个WebElement,WebElement元素接收什么?这是正确的实现吗?——

 WebDriverWait wait = new WebDriverWait(driver, 30);
 WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id)));
boolean status = element.isDisplayed();
Run Code Online (Sandbox Code Playgroud)

java selenium page-load-time webdriverwait implicitwait

2
推荐指数
1
解决办法
3421
查看次数

selenium 中的 ChromeDriver 和 WebDriver 有什么区别?

如果我们创建:

ChromeDriver driver=new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)

chrome 驱动程序方法将被执行。

如果我们创建:

WebDriver driver=new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)

再次ChromeDriver执行方法[根据方法覆盖]。

那为什么我们只在执行时写后一个呢?

java selenium webdriver selenium-webdriver webdriver-w3c-spec

0
推荐指数
1
解决办法
1万
查看次数