使用 Selenium 在所有应用服务器上加载缓存

沙尚克·阿格拉瓦尔

我正在尝试创建一种在我们重新启动服务器后在我的网站上执行小旅程的自动化方式,以便它在实际客户进来之前加载缓存中的所有内容。我已经为它实现了代码,但它所做的只是点击一台服务器/节点并获取该服务器上的缓存。我想要的是它应该一个一个地击中 4 个节点中的每一个。

我已经考虑过,我认为我们可以通过使用 cookie 来实现。所以

  1. 运行程序并从 cookie 中获取 sessionID。
  2. 该 sessionID 包含节点号。
  3. 检查节点并循环相同的程序以命中另外 3 个节点。

节点示例:

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/任何你想访问的节点。

  • 使用 Actions 类通过发送键“Ctrl + T”打开一个新选项卡
  • 使用 driver.getWindowHandles() 获取选项卡列表
  • 使用 driver.switchTo().window(...) 转到最后一个选项卡并访问另一个节点

如果您想在不同的会话中访问这些节点,或者您不希望会话干扰,那么您可能需要杀死并重新打开 chrome 实例。您一次只能在一个 Chrome 实例中使用 user-data-dir。

如果您在 selenium 网格系统中将节点称为节点,那么您需要为不同的节点指定不同的 chrome 配置文件路径和不同的自动化代码。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JBOSS应用服务器和Servlet

来自分类Dev

如何使用HTTP“主机”标头(使用GoLang)定位特定的应用服务器

来自分类Dev

在有限的时间内将PDF存储在应用服务器上,并使其可供下载

来自分类Dev

何时断开Bosh连接从应用服务器建立以使用预绑定?

来自分类Dev

使用Robot Framework和Selenium2Library在代理服务器后面测试应用程序

来自分类Dev

如何使用Selenium服务器运行Selenium IDE测试

来自分类Dev

如何在远程服务器上使用Selenium运行代码接受测试

来自分类Dev

等待元素使用Selenium加载

来自分类Dev

快递应用服务器。侦听所有接口,而不是仅侦听localhost

来自分类Dev

我们如何在不常见的Web服务器(如Caddy)上使用“ Passenger”这样的应用服务器?

来自分类Dev

在Mac Chrome上使用Selenium

来自分类Dev

何时将数据加载到应用服务器的内存中?

来自分类Dev

Quarkus内部使用哪个应用服务器?

来自分类Dev

使用IdentityServer 4 AddSigningCredential在具有Linux容器的Azure应用服务上加载自签名证书时出错

来自分类Dev

消息:在实时服务器上加载时,无法使用Selenium和GeckoDriver找到一组匹配的功能错误

来自分类Dev

是否可以使用Rest-API在不使用Admin SDK的应用服务器上订阅令牌?

来自分类Dev

使用Selenium捕获失败的内容加载

来自分类Dev

在有限的时间内将PDF存储在应用服务器上,并使其可供下载

来自分类Dev

如何在所有测试用例执行完后或使用带有Angularjs的Selenium服务器使用量角器关闭测试用例失败后如何关闭浏览器

来自分类Dev

使用Fabric在所有服务器上运行命令

来自分类Dev

如何在远程服务器上使用Selenium运行代码接受测试

来自分类Dev

使用GCM进行设备到设备的消息传递,而无需注册应用服务器

来自分类Dev

与应用服务器不同的服务器上的视频转换

来自分类Dev

我可以使用我的应用服务器为GCM生成注册令牌吗?

来自分类Dev

生产服务器主要使用哪个平台来开发和部署“应用服务”

来自分类Dev

如何确保我的应用程序使用的是代理服务器而不是我在 selenium 中的 IP 地址?

来自分类Dev

Java 使用 Selenium 等待页面加载

来自分类Dev

如何在 Linux 的 Azure 应用服务中使用自定义 DNS 服务器?

来自分类Dev

我应该使用 tomcat 还是应用服务器?

Related 相关文章

  1. 1

    JBOSS应用服务器和Servlet

  2. 2

    如何使用HTTP“主机”标头(使用GoLang)定位特定的应用服务器

  3. 3

    在有限的时间内将PDF存储在应用服务器上,并使其可供下载

  4. 4

    何时断开Bosh连接从应用服务器建立以使用预绑定?

  5. 5

    使用Robot Framework和Selenium2Library在代理服务器后面测试应用程序

  6. 6

    如何使用Selenium服务器运行Selenium IDE测试

  7. 7

    如何在远程服务器上使用Selenium运行代码接受测试

  8. 8

    等待元素使用Selenium加载

  9. 9

    快递应用服务器。侦听所有接口,而不是仅侦听localhost

  10. 10

    我们如何在不常见的Web服务器(如Caddy)上使用“ Passenger”这样的应用服务器?

  11. 11

    在Mac Chrome上使用Selenium

  12. 12

    何时将数据加载到应用服务器的内存中?

  13. 13

    Quarkus内部使用哪个应用服务器?

  14. 14

    使用IdentityServer 4 AddSigningCredential在具有Linux容器的Azure应用服务上加载自签名证书时出错

  15. 15

    消息:在实时服务器上加载时,无法使用Selenium和GeckoDriver找到一组匹配的功能错误

  16. 16

    是否可以使用Rest-API在不使用Admin SDK的应用服务器上订阅令牌?

  17. 17

    使用Selenium捕获失败的内容加载

  18. 18

    在有限的时间内将PDF存储在应用服务器上,并使其可供下载

  19. 19

    如何在所有测试用例执行完后或使用带有Angularjs的Selenium服务器使用量角器关闭测试用例失败后如何关闭浏览器

  20. 20

    使用Fabric在所有服务器上运行命令

  21. 21

    如何在远程服务器上使用Selenium运行代码接受测试

  22. 22

    使用GCM进行设备到设备的消息传递,而无需注册应用服务器

  23. 23

    与应用服务器不同的服务器上的视频转换

  24. 24

    我可以使用我的应用服务器为GCM生成注册令牌吗?

  25. 25

    生产服务器主要使用哪个平台来开发和部署“应用服务”

  26. 26

    如何确保我的应用程序使用的是代理服务器而不是我在 selenium 中的 IP 地址?

  27. 27

    Java 使用 Selenium 等待页面加载

  28. 28

    如何在 Linux 的 Azure 应用服务中使用自定义 DNS 服务器?

  29. 29

    我应该使用 tomcat 还是应用服务器?

热门标签

归档