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多窗口切换定位的更多相关文章

  1. Python3 Selenium多窗口切换

    Python3 Selenium多窗口切换 以腾讯网(http://www.qq.com/)为例,打开腾讯网,点击新闻,打开腾讯新闻,点击新闻中第一个新闻链接. 在WebDriver中封装了获取当前窗 ...

  2. Python+Selenium学习--窗口切换及操作元素

    场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...

  3. selenium webdriver窗口切换(上)

    selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test201 ...

  4. python3 + selenium 之窗口切换

    窗口切换 此代码来源学习后对淘宝操作实践记录: 以下代码在Chrome61和IE11上正常运行,Firefox5.7上运行存在一些问题须改进,应该是火狐不兼容差link_text部分和循环经常报错,在 ...

  5. selenium webdriver窗口切换(下)

    多窗口切换有时候需要在不同的窗口切换,从而操作不同的窗口上的元素.在selenium1.0 中这个问题比较难处理.但WebDriver 提供了switcTo.window()方法可以切换到任意的窗口. ...

  6. Selenium 多窗口切换

    我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...

  7. Selenium 多窗口元素定位处理

    以下文章来自于  上海-悠悠的博客 <Selenium2+python自动化13-多窗口.句柄(handle)> 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作, ...

  8. selenium 多窗口切换(windows)

    在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作..WebDriver 提供了switchTo() ...

  9. python之selenium多窗口切换

    前提: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这就需要主机切换到新打开的窗口上.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 内容: 以 ...

随机推荐

  1. Halcon 标定与准确测量

  2. 学习笔记74—函数argsort()

    ****************************************************** 如有谬误,请联系指正.转载请注明出处. 联系方式: e-mail: heyi9069@gm ...

  3. (转)关于request.getServletPath(),request.getContextPath()的总结

    文章完全转载自 : https://blog.csdn.net/qq_27770257/article/details/79438987 最近对于request中的几种“路径”有点混淆,查找网上资源都 ...

  4. 第 9 章 数据管理 - 074 - 如何安装和配置 Rex-Ray?

    Rex-Ray 安装和配置方法 Rex-Ray 是一个优秀的 Docker volume driver 安装和配置方法 Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上 ...

  5. Axure文本框验证和外部url的调用

    文本框的验证和外部url的调用: 场景: 当输入文本框中的内容是满足下面条件时:输入4-10的数字,页面会跳转到QQ注册(https://ssl.zc.qq.com/v3/index-chs.html ...

  6. D - Dice Game (BFS)

    A dice is a small cube, with each side having a different number of spots on it, ranging from 1 to 6 ...

  7. 阿里云 RDS for MySQL支持什么引擎

    问题:我们的服务器是买的是阿里云,mysql版本5.011 ,本地和服务器配置一样,在本地可以安装discuzX3.4,但是在服务器上却报错了,如下图: 找了半天,才知道阿里云RDS 支持的mysql ...

  8. 关于a标签的用法总结

    onclick的事件被先执行 ,其次是href中定义的(页面跳转或者javascript) 同时存在两个定义的时候(onclick与href都定义了),如果想阻止href的动作,在onclick必须加 ...

  9. HDU 3月ACM模拟赛T10 COUNT

    题面 //来自TKJ的友好提供 ^_^ 然后我又被卡了半天不知道怎么转移N3 于是听CWY给我讲 终于会了 (虽然他讲的不是很清楚QAQ 但是凭着我们之间根本不存在的默契竟然达成了心智联通) 重点在于 ...

  10. react component onClick 函数带参数

    <div onClick={this.toggleTip(true)}></div> toggleTip = shouldShowTip => () => { th ...