我正在尝试创建一种在我们重新启动服务器后在我的网站上执行小旅程的自动化方式,以便它在实际客户进来之前加载缓存中的所有内容。我已经为它实现了代码,但它所做的只是点击一台服务器/节点并获取该服务器上的缓存。我想要的是它应该一个一个地击中 4 个节点中的每一个。
我已经考虑过,我认为我们可以通过使用 cookie 来实现。所以
节点示例:
354654-节点-1、2、3、4
public static void main(String[] args) {
try {
System.setProperty("webdriver.chrome.driver", "C:\\Shashank\\Java\\Selenium\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.example.com/new");
driver.manage().window().maximize();
driver.findElement(By.id("consent_prompt_submit")).click();
driver.findElement(By.id("postcode")).sendKeys("12345");
driver.findElement(By.className("button-container")).click();
String cookieValue = driver.manage().getCookieNamed("sessID").getValue();
String cookiePath = driver.manage().getCookieNamed("sessID").getPath();
Date expiryDate = driver.manage().getCookieNamed("sessID").getExpiry();
boolean isSecure = driver.manage().getCookieNamed("sessID").isSecure();
System.out.println("Cookie value for sessID : " + cookieValue);
System.out.println("Cookie Path for sessID : " + cookiePath);
System.out.println("Cookie Expiry for sessID : " + expiryDate);
System.out.println("Cookie Secure for sessID : " + isSecure);
// I need to write code here to invoke another session like above but it should hit another node
} catch (Exception e) {
e.printStackTrace();
}
}
1) Chromedriver 每次在您的 %temp% 中都会创建一个新的 chrome 实例。这意味着,当您使用 selenium 访问您的网站时,您不是从客户通常用来访问您网站的 chrome 实例访问它。
因此,完成您想要完成的任务的最简单方法是将默认的 chrome 配置文件路径(您的客户正在使用的路径)指定为“ user-data-dir ” chrome 选项。这样,您将从正确的 chrome 配置文件访问您的网站。
2)关于多节点访问,你可以做的是在单独的chrome选项卡中访问所有4/5/任何你想访问的节点。
如果您想在不同的会话中访问这些节点,或者您不希望会话干扰,那么您可能需要杀死并重新打开 chrome 实例。您一次只能在一个 Chrome 实例中使用 user-data-dir。
如果您在 selenium 网格系统中将节点称为节点,那么您需要为不同的节点指定不同的 chrome 配置文件路径和不同的自动化代码。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句