我遇到了 Selenium 通过网站爬行的问题。我在任何其他网站上都没有遇到过这个问题。我遇到的问题是我登录了这个站点(这是专有信息,所以我不能透露站点名称),当我尝试使用 Selenium webdriver.get("site.com ") 它立即让我退出,说我的会话已过期。
这不是任何其他网站的问题,当我在没有任何代码的情况下浏览该网站时,我的会话永远不会过期。
selenium(特别是java)有没有办法设置一个会话并保持它?
这是我第一次在这个网站上发帖,我已经尝试了我能想到的一切以及这里和谷歌上的所有建议,但我似乎无法让它发挥作用。当我最初使用我使用 ZAP 获取的值打开网站时,我什至尝试创建一个 cookie。
如果我可以提供更多信息,请告诉我,我很乐意提供。任何帮助表示赞赏!
一些代码:
public static void init(String userName, String password) {
File file = new File("C:\\Selenium\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
try {
br = new BufferedReader(new FileReader("C:\\test.txt"));
line = br.readLine();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Starting...");
start(userName, password);
}
public static void start(String userName, String password) {
try {
DatabaseManipulator.getConnection();
logIntoProducer(userName, password);
while(line != null){
System.out.println(driver.manage().getCookies());
fillInCDNInfo(line);
line = br.readLine();
}
}
} catch (NoSuchElementException e) {
System.out.println("No such element exception occurred, closing server");
e.printStackTrace();
} catch (ElementNotVisibleException enve) {
System.out.println("Element not visible, closing server");
enve.printStackTrace();
} catch (StaleElementReferenceException see) {
System.out.println("Old reference, closing server");
see.printStackTrace();
} catch (WebDriverException wde) {
System.out.println("Web driver exception, browser might have been closed. Closing server");
wde.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void logIntoProducer(String userName, String password){
driver.get("https://genericsite.com");
((JavascriptExecutor) driver).executeScript("$('#Password_placeholder').val('').hide();");
((JavascriptExecutor) driver).executeScript("$('#Password').val('').show();");
WebElement query = driver.findElement(By.name("UserName"));
query.sendKeys(userName);
query = driver.findElement(By.name("Password"));
query.sendKeys(password);
((JavascriptExecutor) driver).executeScript("SubmitMainForm()");
waitForSpecifiedMenu(3,"linktext", "Search");
}
public static void fillInCDNInfo(String affiliateName)
{
gotoAffiliateCDNInfoPage(affiliateName);
}
gotoAffiliateCDNInfoPage
公正的电话重要的driver.get("website.com");
是要注意,我现在设置这个只是为了测试。而且这个逻辑适用于其他网站。我是这个网站的新手,所以我认为我没有正确设置我的代码块。