本机环境:xamppv3.2.1+ecshop3.0  
1.元素定位写对,却一直报错,发现是页面元素加载的太慢,所以加上延时 from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.implicitly_wait(10) #自动延时10s
driver.get("http://localhost/ecshop")
# driver.find_element_by_xpath('//div[@class="fl cart-yh"]/a').click()
driver.find_element_by_xpath("//a[@href='user.php']").click() # 登陆
driver.find_element_by_name("username").send_keys("zach")
driver.find_element_by_name('password').send_keys("123456")
driver.find_element_by_name("submit").click()
# 选择商品
time.sleep(3)
driver.find_element_by_xpath("//img[@src='images/201605/thumb_img/72_thumb_G_1462956048008.jpg']").click()
driver.find_element_by_xpath("//img[@src='themes/default/images/buybtn1.png']").click() #立即购买
# driver.find_element_by_xpath("/html/body/div[6]/div[1]/table/tbody/tr/td[2]/a/img").click() #结算
driver.find_element_by_xpath("//img[@src='themes/default/images/checkout.gif']").click() #选择城市 下拉框 1.两次定位 2.xpath 定位层级标签
province = driver.find_element_by_name("province")
province.find_element_by_xpath("//option[@value='5']").click()
city = driver.find_element_by_id("selCities_0")
city.find_element_by_xpath("//option[@value='50']").click() driver.find_element_by_xpath("//select[@name='district']/option[3]").click() driver.find_element_by_id("consignee_0").send_keys('张三')
driver.find_element_by_id("address_0").send_keys("深圳市宝安区")
driver.find_element_by_id("tel_0").send_keys("18888888888")
driver.find_element_by_class_name("bnt_blue_2").click()
#付款
time.sleep(3)
driver.find_element_by_xpath("//input[@name='shipping' and @value='5']").click() driver.find_element_by_xpath("//*[@id='paymentTable']/tbody/tr[4]/td[1]/input").click()
driver.find_element_by_xpath("//input[@src='themes/default/images/bnt_subOrder.gif']").click()

selenium自学笔记---ecshop购买脚本 xpath定位元素(下拉框,单选框)的更多相关文章

  1. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  2. Python selenium PO By.XPATH定位元素报错

    Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[tex ...

  3. Robot Framework与Web界面自动化测试学习笔记:利用xpath定位元素

    在rf中,利用selinum2的关键字进行用例编写时,很多关键字的参数是html元素的定位标识. 最简单的方式,是通过id 或name来描述元素定位信息,如 click  button    id=l ...

  4. Selenium-Python学习——通过XPath定位元素

    用Xpath定位元素的方法总是记不住,经常要翻出各种文档链接参考,干脆把需要用到的内容整到这个笔记中方便查找. Xpath是在XML文档中定位节点的语言.使用 XPath 的主要原因之一是当想要查找的 ...

  5. 【appium】根据xpath定位元素

    1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位 ...

  6. 初探UiAutomator2.0中使用Xpath定位元素

    J 今天的主题是讲一下在使用过程中遇到的一个问题,如何在UiAutomator2.0中使用Xpath定位元素? 背景 现在的app在打包成apk的时候都是有加固处理的,各种混淆加固,所以已经破坏了或扰 ...

  7. Xpath定位元素-一个例子

    前几天在群里面解决的问题,记录下来和大家分享 需要定位这个股份制企业 方法: # 首先需要单击下拉框弹出企业性质的下拉选项:然后用过Xpath定位元素 driver.find.element_by_c ...

  8. selenium webdriver学习(八)------------如何操作select下拉框(转)

    selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver   下面我们来看一下selenium webdriv ...

  9. selenium自学笔记---下拉框定位元素select

    下拉框1.先定位select 然后在定位option city = driver.find_element_by_id("selCities_0") city.find_eleme ...

随机推荐

  1. vue-loader作用

    (1)浏览器本身并不认为.vue文件,所以必须对.vue文件进行加载解析,此时需要vue-loader (2)类似的loader还有许多,如:html-loader.css-loader.style- ...

  2. vs2008 新建win32控制台程序提示:脚本错误

    解决方案: 1.根据错误信息中的url,找到对应文件夹下的htm文件 2.使用notepad++打开default.htm文件,找到错误提示的434行,注释掉433和434行 然后保存文件,重新新建w ...

  3. JMeter基础【第三篇】JMeter5.1元件作用域及执行顺序

    执行顺序,大家可以实践验证,加深印象. 最后,给大家说一个万能且保险的方法:放到对应的取样器下面即可.

  4. Centos7离线部署docker

    下载docker离线包 wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.5.tgz 解压 tar -x ...

  5. C++中typedef和define的区别

    typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...

  6. proc介绍,free命令查看内存

    proc介绍 https://www.cnblogs.com/dongzhuangdian/p/11366910.html https://blog.csdn.net/majianting/artic ...

  7. C++标准库中的std::endl究竟做了什么?

    先抓出std::endl的源代码: /** *  @file  ostream *  @brief  Write a newline and flush the stream. * *  This m ...

  8. 填坑 bzoj3337

    算是个板子题吧,就是不知道啥时候能写出来. #include<cstring> #include<iostream> #include<cctype> #inclu ...

  9. K8s中的网络

    Kubernetes的网络通信问题: 1. 容器间通信: 即同一个Pod内多个容器间通信,通常使用loopback来实现. 2. Pod间通信: K8s要求,Pod和Pod之间通信必须使用Pod-IP ...

  10. Spring事务注解@Transactional失效的问题

    在项目中发现事务失效,使用@Transactional注解标注的Service业务层实现类方法全部不能回滚事务了,最终发现使用因为Spring与shiro进行整合之后导致的问题,将所有的Service ...