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

Selenium Web驱动程序弹出窗口

姬俊能
2023-03-14

我无法使用Selenium在此弹出消息上写入。在这种情况下,请随时帮助我。我的密码是:-

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/body/div[2]/header/div/nav/div/a”)).click();

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/body/div[2]/header/div/nav/div/a”)).click();无法在单击登录按钮后弹出窗体上写入..

共有1个答案

宰父保臣
2023-03-14

我导航到该网站,并使用css选择器#mobile成功地锁定了移动号码字段,该选择器以id属性为目标。您正在为密码字段执行此操作。试着让您的测试使用以下内容:

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

看看有没有帮助...

编辑:我不确定您正在显示的交换帧的未格式化代码块是必要的。除非你和iframes一起工作,否则我一分钟都没看到。

编辑2:

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(ExpectedCondithtml" target="_blank">ions.elementToBeClickable(By.name("mobile")));

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

您可以尝试类似这样的操作,我在对WebDriverWait的调用中添加了一个内容,以解释在单击登录按钮和等待登录提示弹出完成动画之前可能出现的延迟。我不确定这是否适用于您的情况,但这是一种可能性,我在观察网站的行为时嗅出。(我没有测试过这段代码,它是徒手写的。所以对它持怀疑态度。它可能不会像现在这样完美无缺地工作。

您应该使对象引用小写,保存类名的大写符号。我想弄清楚为什么要调用一个名为driver的类的静态方法,而不是类webdriver的实例

 类似资料:
  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram

  • 我正在通过selenium web驱动程序进行自动化测试用例。我被困在一个地方,我总是得到第一个chrome的默认弹出窗口。我无法对该弹出窗口做任何操作,因为它没有在代码中检查,请检查所附的默认弹出窗口的屏幕截图。 请建议我处理这些事情。感谢任何帮助。

  • 描述 (Description) 可以使用相关的app方法动态创建popover,如下所示 - myApp.popover(popoverHTML, target, removeOnClose) - 此方法接受以下参数 popoverHTML - 它是popoverHTML的HTML字符串。 target - 它是一个HTMLElement or string (with CSS Selector

  • 我正在使用Selenium Webdriver通过它来自动化Salesforce应用程序。测试场景:-在帐户页面上,单击“查找”(帐户)搜索图标会打开标准Salesforce搜索弹出窗口。我无法切换窗口。

  • 问题内容: 我正在纯粹用JavaScript开发OAuth身份验证流程,我想在弹出窗口中向用户显示“授予访问权限”窗口,但是该窗口被阻止了。 如何防止由或创建的弹出窗口被不同浏览器的弹出窗口阻止程序阻止? 问题答案: 一般规则是,如果从 直接用户操作 未调用的javascript中调用了javascript或类似方法,则会阻止弹出窗口阻止 程序 。也就是说,您可以响应单击按钮而调用,而不会被弹出窗

  • 继承自 NativeObject 所有弹出式UI元素(pop-ups)的基类。弹出式UI元素比所有其他UI的层级都高,但不属于控件。某些弹出式UI只能弹出一次。 通过 “const {Popup} = require('tabris');” 引入该类 方法 close() 返回值: this 隐藏弹出窗。 open() 返回值: this 显示弹出窗。