Selenium Web-Driver Popup

时间:2018-02-05 17:21:30

标签: selenium-webdriver

I am unable to write on this popup message using selenium. Please feel free to help me in this case. 我的代码是: -

public static void main(String[] args) 
{
System.setProperty("webdriver.gecko.driver", "F:\\gecko_driver\\geckodriver-
v0.16.1-win64\\geckodriver.exe");
WebDriver driver= new FirefoxDriver();
driver.get("https://www.heycare.com");   

driver.findElement(By.xpath( “HTML /体/格[2] /报头/ DIV / NAV / DIV / A”))点击();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
System.out.println("hello world-----1");
driver.switchTo().frame(0);
driver.findElement(By.id("mobile")).sendKeys("7015273543");
System.out.println("hello world-----2");
//Driver.findElement(By.id("mobile")).sendKeys("7015273543");
driver.findElement(By.id("Pass")).sendKeys("123456");
}

错误: - 线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:* [name ='mobile']

代码工作正常,直至: -  driver.findElement(By.xpath( “HTML /体/格[2] /报头/ DIV / NAV / DIV / A”))点击(); 无法在单击登录按钮后弹出的弹出窗口上写入..

1 个答案:

答案 0 :(得分:0)

我导航到该网站,并使用定位id属性的css选择器#mobile成功定位了移动电话号码字段。您正在为密码字段执行此操作。尝试让你的测试使用它:

Driver.findElement(By.id("mobile")).sendKeys("7015273543");

看看是否有帮助...

修改:我不确定未格式化的代码阻止您显示切换帧是否必要。除非您正在使用iframe,否则在我环顾四周时我没有看到任何内容。

<强> EDIT2

WebDriver driver = new FirefoxDriver();
driver.get("https://www.heycare.com");
System.out.println("hello world");

driver.findElement(By.className("log-pop")).click(); 

WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.elementToBeClickable(By.name("mobile")));

driver.findElement(By.name("mobile")).sendKeys("7015273543");
driver.findElement(By.id("Pass")).sendKeys("123456");

您可以尝试这样的事情,我在调用WebDriverWait时添加了一个问题来解释点击登录按钮之间可能出现的延迟,并等待登录提示弹出窗口完成它的动画之前被允许点击。我不确定这是否适用于你的情况,但当我观察网站的行为时,我有可能嗅出来。 (我没有测试任何这些代码,它是徒手写的。所以请把它当作一粒盐。它可能无法完美地工作。

java nit,您应该将对象引用为小写,为类名保存大写符号。我有一点想弄清楚为什么要调用名为Driver的类的静态方法而不是类WebDriver的实例