selenium多窗口切换定位
from selenium import webdriver
import unittest,time,re
from selenium.webdriver.common.keys import Keys '''
元交网登录退出
''' username=''
password='' class Untitled(unittest.TestCase):
def setUp(self):
# 打开网址
self.driver=webdriver.Firefox()
self.driver.implicitly_wait(10)
self.url="https://ca.cecb2b.com/login"
self.driver.maximize_window() def shop_buy(self):
driver=self.driver
driver.get(self.url)
# 登录
driver.find_element_by_xpath("//input[@id='username']").clear()
driver.find_element_by_xpath("//input[@id='username']").send_keys(username)
self.driver.implicitly_wait(10)
driver.find_element_by_xpath("//input[@class='text_inps1 text_inps2']").send_keys(password)
driver.find_element_by_xpath("//input[@type='submit']").click()
driver.find_element_by_xpath("//a[contains(text(),'元器件交易网-全球领先电子配套平台')]").click() #元交网首页 now_handle=driver.current_window_handle #获取当前窗口句柄
print("----now handle id first is %s"%now_handle) # 购买某产品
driver.find_element_by_xpath("//*[@class='buy-now']").find_element_by_link_text('立即购买').click()
# driver.implicitly_wait(10)
time.sleep(2) all_handles = self.driver.window_handles #获取所有窗口的句柄
# 将所有窗口id遍历一遍,将最新的写入到txt中
filename='write_data.txt'
with open(filename, 'w') as f:
for i in range(len(all_handles)):
f.write(str(all_handles[i]+"\n")) time.sleep(2) #增加延迟,以确保浏览器响应
# print("---新页面id is %s 旧页面id is %s"%(all_handles[1],now_handle)) # 进入购物车
driver.switch_to_window(all_handles[-1])
time.sleep(1)
driver.find_element_by_xpath("//div[@class='gauge']/a[1]").click()
time.sleep(1)
# print(now_handle) # 进入结算
time.sleep(2)
self.driver.find_element_by_xpath("//input[@id='inlandAllTop']").click() # 复选框checkbox
time.sleep(2)
self.driver.find_element_by_xpath("//div[@class='company-list']/input[1]").send_keys(Keys.SPACE) #选择第一个checkbox
if driver.find_element_by_xpath("//div[@class='company-list']/input[1]").is_selected():
print('selected!')
else:
print('not yet!')
time.sleep(1)
self.driver.find_element_by_xpath("//a[@class='accounts']").click()
time.sleep(2) self.driver.find_element_by_link_text("提交订单").click()
time.sleep(2)
self.driver.find_element_by_link_text("国内交货支付").click() def tearDown(self):
self.driver.quit() if __name__ == '__main__':
unittest.main()
selenium多窗口切换定位的更多相关文章
- Python3 Selenium多窗口切换
Python3 Selenium多窗口切换 以腾讯网(http://www.qq.com/)为例,打开腾讯网,点击新闻,打开腾讯新闻,点击新闻中第一个新闻链接. 在WebDriver中封装了获取当前窗 ...
- Python+Selenium学习--窗口切换及操作元素
场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...
- selenium webdriver窗口切换(上)
selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test201 ...
- python3 + selenium 之窗口切换
窗口切换 此代码来源学习后对淘宝操作实践记录: 以下代码在Chrome61和IE11上正常运行,Firefox5.7上运行存在一些问题须改进,应该是火狐不兼容差link_text部分和循环经常报错,在 ...
- selenium webdriver窗口切换(下)
多窗口切换有时候需要在不同的窗口切换,从而操作不同的窗口上的元素.在selenium1.0 中这个问题比较难处理.但WebDriver 提供了switcTo.window()方法可以切换到任意的窗口. ...
- Selenium 多窗口切换
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...
- Selenium 多窗口元素定位处理
以下文章来自于 上海-悠悠的博客 <Selenium2+python自动化13-多窗口.句柄(handle)> 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作, ...
- selenium 多窗口切换(windows)
在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作..WebDriver 提供了switchTo() ...
- python之selenium多窗口切换
前提: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这就需要主机切换到新打开的窗口上.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 内容: 以 ...
随机推荐
- JS-函数作用域
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量.
- Asp.Net MVC 从客户端<a href="http://www....")中检测到有潜在危险的 Request.Form 值
Asp.Net MVC应用程序, Framework4.0: 则需要在webconfig文件的 <system.web> 配置节中加上 <httpRuntime requestVal ...
- linux——文件操作
1.创建文件夹 mkdir /myFolder 2.创建文件 touch hello.txt 3.复制文件 cp [-adfilprsu] 源文件 目标地址 4.移动 mv 源地址 目标地址 5.正向 ...
- hashlib 和 hmac 算法的区别
-----md5 = hashlib.md5() md5.update(password+salt) md5.hexdigest() ----- h = hmac.new(key,password,d ...
- D3比例尺
D3中有个重要的概念就是比例尺.比例尺就是把一组输入域映射到输出域的函数.映射就是两个数据集之间元素相互对应的关系.比如输入是1,输出是100,输入是5,输出是10000,那么这其中的映射关系就是你所 ...
- arcpy简单示例
最好在arcmap内置python模块运行. 这里用的是Zonel Stastic as Table模块,计算各个国家的逐月径流量的统计数据.需要对数百个tiff进行计算和导出,使用arcpy可以大大 ...
- swagger坑
接口测试导出Excel,使用swagger得到响应后手动点击下载--Excel时文件损坏无法打开,,,而直接请求链接下载到的文件正常打开..
- 16、for-of循环
forEach不支持break for-in把数组当做对象来遍历,但是只能遍历出索引值 for-of循环可以遍历出数组的每一项值,支持break 1.for-in示范: 2.for-of示范 3.fo ...
- 浅谈C中操作字符串函数的用法(一)
按照内核string.h中函数的顺序进行大概的介绍,若干函数会给出一个简单的例子.有不足之处还希望各位看到的留言告知. 一.memcpy: 函数原型:extern void * memcpy(void ...
- windows下使用 fdfs_client 上传文件
在上一篇中介绍了使用 FastDFS 与 Nginx 在 Linux 系统上实现分布式图片服务器,现在介绍在 windows 系统下使用该分布式图片服务器. 需要安装 fdfs_client 模块和配 ...