当前位置: 首页 > 知识库问答 >
问题:

Selenium代码在打开第二个窗口后冻结

邹毅
2023-03-14
System.setProperty("webdriver.chrome.driver", 
System.getProperty("user.dir")+ "\\exe\\chromedriver.exe");      
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
driver.get(prop.getProperty("https://genpact-qa-smartit.onbmc.com"));          
driver.findElement(By.xpath("//*[@id='okta-signin- 
username']")).sendKeys(userid);
driver.findElement(By.xpath("//*[@id='okta-signin- 
password']")).sendKeys(pwd);
driver.findElement(By.xpath("//*[@id='okta-signin-submit']")).click();
driver.findElement(By.xpath("//a[@id='header-search_button']")).click();


driver.findElement(By.xpath("//input[@id='globalSearchBox']")). 
sendKeys("CRQ000000029504");

Robot robot=new Robot();

robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
driver.findElement(By.xpath("//a[text()='View Full Change']")).click();
Thread.sleep(3000);
driver.findElement(By.xpath("//div[@title='Print']")).click();
Thread.sleep(3000);
driver.findElement(By.xpath("//button[contains(text(),'Print 
Change')]")).click();
System.out.println("Clicked on Print Change button");

如有任何帮助,我们将不胜感激。

问候你,Surender

共有1个答案

贺景山
2023-03-14

首先,为了您的安全,请编辑您的帖子,删除您的用户名和密码,在您的代码(然后更改他们)。

就您的问题而言,很有可能:

driver.findElement(By.xpath("//button[contains(text(),'Print 
Change')]")).click();

给定的xpath包含多个元素,因此所需的元素可能不可见。因此,您应该使用以下选项更具体:

[contains(text(),' ... ']
driver.findElement(By.xpath("//button[contains(text(),'Print 
Change')]")).click();
driver.findElement(By.xpath("/html/body/div[4]/div/div/div/div[3]/div/button[1])]")).click();
 类似资料:
  • 我正在尝试打开两个或更多单独的窗口。 我跑着打开了第一扇窗户 现在,我试图通过简单地重复最后一行(来打开第二个窗口,但它返回了 所以我尝试了 这次它又回来了 我该怎么解决这个问题?

  • 我有一个简单的聊天客户端,我正试图使用作为界面。我的问题是,使用进行聊天输入/输出后,窗口将冻结并阻塞,直到收到另一条消息。 这段代码被缩短了,但是显示了相关的部分。小部件将在很长一段时间内变得无响应,而被调用之后,直到收到消息才会响应。 当小部件再次响应时,条目字段包含输入的所有数据,但在“冻结”时间内我看不到更改。小部件也是如此。 如果有人能解释一下为什么会这样,或者指出我是否错过了这里使用的

  • 我在做安全的web应用程序。当我单击框架内链接时,它打开了另一个需要记录信息的窗口,但当我在selenium中执行此场景时,它单击框架内链接,系统显示两个窗口,window1显示空白页面,标题为“空白页面-窗口internet Explorer”,window2显示网站安全证书,标题为“空白页面-窗口internet Explorer”。 当我手动操作时,它显示一个窗口,但在自动化过程中,它显示两

  • 问题内容: 我正在尝试从第二个窗口切换到第三个窗口。但是无法处理第三个窗口。有人可以帮助我解决此问题。我已经使用比较窗口标题的逻辑,但是它不起作用。代码======================= 错误堆栈跟踪: 问题答案: 这是切换到 并单击 按钮的完整代码块: 我的IDE控制台上的输出是:

  • 如果我使用的只是进程启动,它将打开一个新的浏览器chrome窗口,但将集中在窗口上。我想打开一个新的chrome选项卡,但如果没有焦点,该选项卡将在当前窗口后面的背景上。

  • 问题内容: 我正在尝试在C#中将PhantomJS与Selenium Webdriver一起使用。以下是我的代码: 该代码可以正常工作,但是只要运行,它就会打开一个cmd窗口,其中显示了phantomjs的所有日志。该cmd也用关闭。 问题是我不希望显示cmd窗口。我应该怎么做才能做到这一点? 更新:当我在Python中执行相同的代码时,cmd窗口不显示。但是,如果我使用py2exe将python