Selenium Webdriver——操作隐藏的元素(四)

页面上弹出的对话框是自动化测试经常会遇到的一个问题;很多情况下对话框是一个iframe,如上一
节中介绍的例子,处理起来稍微有点麻烦;但现在很多前端框架的对话框是div 形式的,这就让我们的处
理变得十分简单。

上图为百度首页的登录对话框,下面通过脚本对百度进行登录操作:

#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com/")
#点击登录链接
driver.find_element_by_name("tj_login").click()
#通过二次定位找到用户名输入框
div=driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
div.send_keys("username")
#输入登录密码
driver.find_element_by_name("password").send_keys("password")
#点击登录
driver.find_element_by_id("TANGRAM__PSP_10__submit").click()
driver.quit()

本例中并没有用到新方法,唯一的技巧是用到了二次定位,这个技巧在层级定位中已经有过使用。
driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
第一次定位找到弹出的登录框,在登录框上再次进行定位找到了用户名输入框。

时间: 2024-11-07 17:06:26

Selenium Webdriver——操作隐藏的元素(四)的相关文章

Selenium Webdriver——操作隐藏的元素

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path = 'file

Selenium操作隐藏的元素

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过"display:none"来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path =

Python语言-selenium webdriver操作记录汇总

1.控制浏览器大小 set_window_size() 设置浏览器大小 该方法有两个参数,第一个参数是宽,第二个是高 maximize_window() 设置浏览器全屏显示,无参数 chrome谷歌浏览器在控制浏览器大小时,报错 : unknown error: cannot get automation extension 解决办法:将chrome的webdriver驱动更新到最新的 参考网上:http://blog.csdn.net/lj2tj/article/details/5308234

Selenium webdriver 操作日历控件

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如12306的这个 <input id="train_date" class="inp-txt" type="text" value="2015-03-15" name="back_train_date" a

selenium webdriver定位不到元素的五种原因及解决办法

转自http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[c

Selenium WebDriver定位不到元素的原因及解决办法

1.动态id定位不到元素for example:        //WebElement  xiexin_element = driver.findElement(By.id("_mail_component_82_82"));         WebElement xiexin_element = driver.findElement(By.xpath("//span[contains(.,'写  信')]"));        xiexin_element.cl

转载:selenium webdriver定位不到元素的五种原因及解决办法

1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[contains(.,'写 信')]"));        xiexin_element.click

selenium webDriver给隐藏域赋值 input hidden set value

//直接这样无法给input hidden赋值// driver.findElement(By.id("image_default")).sendKeys("a1112.jpg"); String val = driver.findElement(By.id("image_default")).getAttribute("value"); JavascriptExecutor jse = (JavascriptExecutor

selenium WebDriver 操作高德地图

String URL="http://www.amap.com/"; WebDriver driver = new FirefoxDriver(profile); driver.get(URL); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(3