我在 Java 中使用 selenium 使用以下代码。我添加了 4 秒的 pageLoadTimeout,但是,驱动程序继续等待,直到加载完整页面。有什么帮助吗?
System.setProperty("webdriver.gecko.driver", System.getProperty("user.home") + "\\Desktop\\geckodriver.exe");
FirefoxBinary b = new FirefoxBinary(new File(System.getProperty("user.home") + "\\desktop\\Mozilla Firefox\\firefox.exe"));
FirefoxOptions options = new FirefoxOptions().setBinary(b);
driver = new FirefoxDriver(options);
//driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);
driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
List<WebElement> facilitySectionList = driver.findElements(By.className("facilitiesChecklistSection"));
Run Code Online (Sandbox Code Playgroud) Ubuntu 18.x + selenium webdriver(Firefox)
面对一个奇怪的问题,如果我run将它们全部放在一起,下面的块就可以工作了
from selenium import webdriver
url = 'https://indiamart.com'
driver = webdriver.Firefox()
driver.get(url)
driver.find_element_by_xpath(xpath).click()
Run Code Online (Sandbox Code Playgroud)
每次url尝试过都会发生这种情况.
但是,如果我一次执行一行,它会给出
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/media/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 326, in get
self.execute(Command.GET, {'url': url})
File "/media/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 312, in execute
response = self.command_executor.execute(driver_command, params)
File "/media/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 472, in execute
return self._request(command_info[0], url, body=data)
File "/media/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 495, in _request
self._conn.request(method, parsed_url.path, body, headers)
File "/usr/lib/python3.6/http/client.py", line 1239, in request …Run Code Online (Sandbox Code Playgroud) 在python selenium的上下文中,我不太明白driver.set_page_load_timeout(n)VS的确切区别。driver.set_script_timeout(n). 两者似乎可以互换使用来设置超时以通过 加载 URL driver.get(URL),但有时也一起使用。
场景一:
driver.set_page_load_timeout(5)
website = driver.get(URL)
results = do_magic(driver, URL)
Run Code Online (Sandbox Code Playgroud)
场景二:
driver.set_script_timeout(5)
website = driver.get(URL)
results = do_magic(driver, URL)
Run Code Online (Sandbox Code Playgroud)
两种情况有何不同?哪些情况会在一种情况下触发超时而不是另一种情况?