当页面使用AJAX时,可以使用隐式和显式等待,但我想停止加载driver.get()足够元素时引起的加载.是否可以这样做,因为driver.get()只有在页面完成加载时才会返回调用.
我在打开网站时遇到了有关 Selenium Webdriver 速度的令人厌恶的问题。
我正在测试的网站是内部网站,因此您无法访问。为了详细描述我的问题,我将将该网站称为ABC。
当我ABC在 Chrome 浏览器中输入 的 URL 时,只需要 1 秒钟即可打开该网站。
在 TestNG 中,我的 Selenium 客户端如下所示:
String ABC = "ABC'S URL";
String chromeDriverPath = "C:\\selenium\\chromedriver.exe" ;
System.out.println("start selenium");
File file = new File(chromeDriverPath);
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
webDriver driver = new ChromeDriver(options);
driver.get(ABC);
Run Code Online (Sandbox Code Playgroud)
然后,Chrome将由自动化测试软件控制。在足迹上,会有一个注释,写着waiting for staticxx.fackbook.com, 或waiting for www.facebook.com。
1分钟后,ABC网站已成功加载。我检查F12工具并在控制台中显示staticxx.facebook.com/connect/xd_arbiter/r/0F7S7QWJ0Ac.js?version=42#channel=f38f3479a8af658&origin=http%
Failed to load resource: the server responded with a status of 503 …
我正在尝试在 selenium 中检查网页是否已加载完成(即检查所有控件是否已加载)。
我试过下面的代码:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until(
webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
Run Code Online (Sandbox Code Playgroud)
但即使页面正在加载上面的代码也不会等待。
我知道我可以检查特定元素以检查其是否可见/可点击等,但我正在寻找一些通用解决方案
selenium dom selenium-webdriver webdriverwait expected-condition
我想加快 selenium 上页面的加载时间,因为我不需要 HTML 以外的任何东西(我正在尝试使用 BeautifulSoup 抓取所有链接)。使用 PageLoadStrategy.NONE 无法抓取所有链接,并且 Chrome 不再支持 PageLoadStrategy.EAGER。有谁知道在 python 中获取 PageLoadStrategy.EAGER 的解决方法?
selenium web-scraping python-3.x selenium-chromedriver pageloadstrategy
selenium ×5
java ×2
dom ×1
dom-events ×1
pageload ×1
python ×1
python-3.x ×1
testng ×1
web-scraping ×1