Selenium-eCLIPSE-WebDriver警报处理-查询
在eclipse中,我打算自动执行以下步骤 (1) 打开谷歌浏览器 (2) 进入 (3) 最大化窗口 (4) (几秒钟后),网站会显示一个新的弹出窗口进行登录。 (5) 只需使用右上角的“X”图标关闭弹出窗口 已在代码中将警报窗口命名为sharp,但 在代码上,Alert Sharp=Flip.switchTo().Alert();获取警告信息为“未使用局部变量sharp的值” 执行时,不执行步骤4和5。使用了Sharp.disclose();同样,但仍然没有失败 已经为相同的问题编写了下面的代码。请澄清Selenium-eCLIPSE-WebDriver警报处理-查询,eclipse,selenium,webdriver,Eclipse,Selenium,Webdriver,在eclipse中,我打算自动执行以下步骤 (1) 打开谷歌浏览器 (2) 进入 (3) 最大化窗口 (4) (几秒钟后),网站会显示一个新的弹出窗口进行登录。 (5) 只需使用右上角的“X”图标关闭弹出窗口 已在代码中将警报窗口命名为sharp,但 在代码上,Alert Sharp=Flip.switchTo().Alert();获取警告信息为“未使用局部变量sharp的值” 执行时,不执行步骤4和5。使用了Sharp.disclose();同样,但仍然没有失败 已经为相同的问题编写了下面的代
package basic;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.Alert;
public class FlipKart{
public static void main(String[]args) throws InterruptedException{
System.setProperty("webdriver.chrome.driver", "C:\\Users\\hp\\workspace\\Selenium\\browser\\chromedriver.exe");
WebDriver Flip = new ChromeDriver();
Flip.get("https://www.flipkart.com/");
Flip.manage().window().maximize();
Thread.sleep(5000); //FLIPKART CODE
Alert Sharp = Flip.switchTo().alert();// pop -up window shown
//单击右上角的X图标关闭窗口
Flip.findElement(By.xpath("/html/body/div[2]/div/div/button")).click();
}
}
尝试使用以下代码-
driver.findElement(By.xpath("/html/body/div[2]/div/div/button")).click();
编辑
Flipkart的登录分区是一个单独的分区,它既不包含在警报中,也不包含在弹出窗口/框架中。因此,只需使用xpath定位元素[X]并单击该元素即可关闭登录窗口。 下面这个简单的陈述对我很有用 删除
Thread.sleep(5000); //FLIPKART CODE
Alert Sharp = Flip.switchTo().alert();
driver.findElement(By.xpath("/html/body/div[3]/div/div/button")).click();
保存
Thread.sleep(5000); //FLIPKART CODE
Alert Sharp = Flip.switchTo().alert();
driver.findElement(By.xpath("/html/body/div[3]/div/div/button")).click();
以下是你问题的答案: 正如你提到的
网站显示了一个新的弹出窗口来登录。只要使用右上角的“X”图标关闭弹出窗口即可
如果您试图通过开发工具
定位元素,弹出窗口将从HTML DOM中弹出。因此,我们无法像您尝试的那样通过Alert
类处理此弹出窗口Alert Sharp=Flip.switchTo().Alert()代码>。相反,我们将通过WebDriver
关闭弹出窗口,如下所示:
值得一提的是,弹出窗口会在一段时间后出现,因此我们应该引入一些明确的提示,即WebDriverWait
,以便弹出窗口出现
如果这能回答您的问题,请告诉我。只有xpath可以。等待警报将抛出TimeoutExcpetion,因为页面源中没有警报。@Mkay-是的,你是对的。我正在更新我的答案。感谢driver.findelelement(By.xpath(“/html/body/div[3]/div/div/buto)。单击();不工作。selenium无法识别弹出窗口。错误消息显示不存在具有给定xpath的web元素。正如您所提到的,该网站显示了一个新的弹出窗口进行登录,我将其签出,并且没有出现这样的窗口。为此,你必须归纳出一些明确的观点。更新my answer.driver.findElement(By.xpath(“/html/body/div[3]/div/div/button”)。单击();不工作。selenium无法识别弹出窗口。错误消息显示不存在具有给定xpath的web元素。