webdriver处理无法定位元素的弹窗

未经作者允许,禁止转载!

有时候在打开网页时,弹出了一个对话框提示需要输入用户名和密码,只有输入正确的用户名和密码之后

才能开始浏览网页,但是webdriver无法定位这个对话框里面的元素,也就是说在这个对话框上面右键没有反应

相信大家都遇到过这种坑爹的问题,下面就提供一种简单有效的方法!

大家可以试一试这个网页 https://www.engprod-charter.net/

下面是今天要处理的网页

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class windowDialog20161209 {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chorme.driver", "C:\\Training\\Automation\\Software\\drivers\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
//        driver.get("http://test3.tcom.aws.toyota.com/tcom-apps/vapi-preview/console.html");
//        Thread.sleep(5000);
//        System.out.println("打开网页需要输入用户名和密码");
//        driver.close();

        driver.get("http://toyota-oss:[email protected]/tcom-apps/vapi-preview/console.html");
        Thread.sleep(3000);
        driver.switchTo().alert().accept();------------对弹窗默认选择确定
        System.out.println("已经处理了弹窗");

    }

}

下面是python 代码

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains

driver=webdriver.Chrome()
driver.get("http://toyota-oss:[email protected]/tcom-apps/vapi-preview/console.html")
#alert = driver.switch_to_alert()   如果是第一次打开上面的链接,就需要alert.accept(),但是从第二次之后保留了cookie就不再有弹窗
#alert.accept()
driver.maximize_window()
time.sleep(2)
print "进入toyota首页" 
时间: 2024-10-13 05:26:39

webdriver处理无法定位元素的弹窗的相关文章

WebDriver定位元素方法

如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.name.class name.tag name等. 二.在找查某人的时候可以通过位置属性,例如,x国.x市.x路.x号.Xpath和CSS就提供了这种以标签名为层级关系的定位方式. 三.可以借助相关他人的属性来找到某人,例如,我没有小明的联系方式,但我有他爸爸的手机号,那么通过他爸爸手机号也可以找到小

webdriver中定位元素,报无法找到元素的问题

webdriver中定位元素,报无法找到元素的问题时,需要查看以下几点: 1 用火狐的firebug插件定位元素,确保这个元素的定位正确: 2 在火狐的firebug插件的,在html页签中输入frame或者iframe去查看这个元素所在的frame或iframe是什么: 写如下语句: WebElement iframe = driver.findElement(By    .xpath("//*[@id='ContentFrame']"));  driver.switchTo().f

selenium中的webdriver定位元素失败的常见原因

自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"

定位元素

WebDriver 属于 Selenium 体系中设计出来python操作浏览器的一套 API. webdriver 提供8种定位元素的方法: id name class name tag name link text partial link text xpath css selector Python 语言中对应的定位方法如下: find_element_by_id() find_element_by_name() find_element_by_class_name() find_elem

使用findElement方法定位元素

selenium WebDriver定位元素是通过findElement()和findElements()方法. findElement()方法返回一个基于指定查询条件的WebElement对象或是抛出一个没有找到符合条件元素的异常. findElements()方法会返回匹配指定查询条件的webElements对象的集合,如果没有找到则返回空. 查询方法会将By实例作为参数传入.Selenium WebDriver提供了By类来支持各种查询策略. 策略: 方法 By  ID   driver.

selenium2.0第一部分:定位元素

Selenium WebDriver提供了先进的技术定位网页上的元素,Selenium丰富的API提供了多种定位元素的策略,例如如姓名.XPath ID.CSS选择器等等,也能自定义定位方法来定位元素 一.通过fidElement方法定位元素 WebDriver and WebElement class.提供findElement()和findElements()方法来定位元素 findElement()方法会通过特殊的索引返回web元素的信息,或者抛出异常(没有找到匹配的元素) findEle

Appium学习路—Android定位元素与操作

一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能 下面是用monitor抓取到的页面元素 下面使用Appium Inspector定位的元素 二.元素定位   1.格式:find_element_by_定位方式(value) 通过id定位 (取resource-id的值): dr

定位元素的封装

封装定位元素和login函数,在fengzhuang.py中 #coding=utf-8import timefrom selenium import webdriver#第三版本:封装定位元素def findID(driver,ID): return driver.find_element_by_id(ID)def findLINK(driver,LINK): return driver.find_element_by_link_text(LINK)def findCss(driver,css

selenium切换窗口后定位元素出现问题的解决方案

在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding=utf-8 import os from selenium import webdriver import time chrome = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe' os.environ["we