说明:仅作为参考练习,代码中涉及数据均为测试数据。

 from selenium import webdriver
from selenium.webdriver import ActionChains
# from selenium.webdriver.support.ui import WebDriverWait
# from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
import time
import mysql.connector #连接数据库
conn = mysql.connector.connect(host='192.168.1.10', port = 3306, user='root', password='abcd@1234', database='lingyunzhubao')
# 操作游标, 获取python操作者mysql命令
cursor = conn.cursor()
# 测试店铺
shopname = "测试20170927"
query_sql ='select * from jch_store t where t.store_name= "%s"' %shopname #此处没有逗号,加逗号会变成tuble类型
delete_sql = 'delete from jch_store where store_name = "%s"' %shopname
cursor.execute(query_sql)
result =cursor.fetchall()
if result is not None:
print("删除已有店铺")
cursor.execute(delete_sql)
conn.commit()
else:
print(shopname +" 该店铺可新增") # 火狐浏览器打开
# driver = webdriver.Firefox()
# driver = webdriver.Ie() # 谷歌,多加几行是为了去掉提示:Chrome正收到自动测试软件的控制
options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
driver = webdriver.Chrome(chrome_options=options) driver.get("http://192.168.1.10:8080/jcho2o/login/login.do") #最大化浏览器
driver.maximize_window()
#等待浏览器打开
print("登录麦珠宝后台")
time.sleep(3)
driver.find_element_by_id("userName").send_keys("")
driver.find_element_by_id("passWord").send_keys("")
time.sleep(1)
driver.find_element_by_xpath('//*[@id="form1"]/div[6]/button').click()
time.sleep(1)
print("点击[店铺信息设置]")
driver.find_element_by_xpath('//*[@id="side-menu"]/li[1]/a/span').click()
print("进入[店铺信息界面],等待3秒,点击[新增店铺]")
time.sleep(0.5) # 切换frame
driver.switch_to.frame("iframe0")
# print (driver.find_element_by_xpath('//div[text()="新增店铺"]').text)
driver.find_element_by_xpath('//div[text()="新增店铺"]').click() # 尼玛终于找到了 print("进入新增页面,等待3秒后,输入数据")
# 切回默认页面
driver.switch_to.default_content()
time.sleep(0.5)
driver.switch_to.frame("iframe15")
time.sleep(0.5) driver.find_element_by_xpath('//*[@id="txt_shop_name"]').send_keys("测试20170927")
time.sleep(0.3)
# 点击店铺地址下拉框
driver.find_element_by_xpath('//span[text()="请选择省市区"]').click()
#等待3秒,选择省份
time.sleep(0.5)
driver.find_element_by_xpath('//a[text()="北京市"]').click()
time.sleep(0.5)
driver.find_element_by_xpath('/html/body/div/div/div[4]/div[1]/div/div/div[2]/div[2]/dl/dd/a[1]').click()
time.sleep(0.5)
driver.find_element_by_xpath('/html/body/div/div/div[4]/div[1]/div/div/div[2]/div[3]/dl/dd/a[4]').click()
time.sleep(0.5)
driver.find_element_by_id("txt_shop_address_details").send_keys("具体店铺地址")
print("填写店铺收货资料")
# 滑动滚动条下滑到底部
# scroll_to_position = driver.find_element_by_xpath('//button[text()="保存"]')
# ActionChains(driver).move_to_element(scroll_to_position).perform()
# time.sleep(1) #将页面滚动条拖到底部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(2) # 输入店铺收货人
driver.find_element_by_id("txt_addressee_name").send_keys("店铺收货人")
# 输入店铺联系方式
driver.find_element_by_id("txt_addressee_phone").send_keys("")
#输入店铺收货地址
driver.find_element_by_xpath("/html/body/div/div/div[10]/div[1]/span/span[1]").click()
time.sleep(0.5)
driver.find_element_by_xpath("/html/body/div/div/div[10]/div[1]/div/div/div[2]/div[1]/dl[1]/dd/a[6]").click() time.sleep(0.5)
driver.find_element_by_xpath("/html/body/div/div/div[10]/div[1]/div/div/div[2]/div[2]/dl/dd/a[1]").click()
time.sleep(0.5)
driver.find_element_by_xpath("/html/body/div/div/div[10]/div[1]/div/div/div[2]/div[3]/dl/dd/a[3]").click()
time.sleep(0.5)
driver.find_element_by_id("txt_address_detail").send_keys("琶洲国际采购中心 test")
time.sleep(0.5)
driver.find_element_by_xpath('//button[text()="保存"]').click()
time.sleep(0.5)
driver.switch_to.default_content() cursor.execute(query_sql)
# fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据
new_result = cursor.fetchall()
if new_result is not None:
print("新增店铺成功")
else:
print("新增店铺失败")

selenium自动新增店铺的更多相关文章

  1. [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图

    前两篇文章介绍了安装,此篇文章算是一个简单的进阶应用吧!它是在Windows下通过Selenium+Python实现自动访问Firefox和Chrome并实现搜索截图的功能.        [Pyth ...

  2. Python + Selenium 自动发布文章(一):开源中国

    https://blog.csdn.net/qq_28804275/article/details/80891949 https://blog.csdn.net/qq_28804275/article ...

  3. 自动化测试: Selenium 自动登录授权,再 Requests 请求内容

    Selenium 自动登录网站.截图及 Requests 抓取登录后的网页内容.一起了解下吧. Selenium: 支持 Web 浏览器自动化的一系列工具和库的综合项目. Requests: 唯一的一 ...

  4. MY_使用selenium自动登录126/163邮箱并发送邮件

    转自:https://www.cnblogs.com/yin-tao/p/7244082.html 我使用的是python2.7.13+selenium ps:几天之前,我曾多次尝试写这段代码,但是在 ...

  5. 爬虫实战【10】利用Selenium自动登陆京东签到领金币

    今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...

  6. 用selenium自动加载浏览器下载图片

    上一篇用requests这个库进行图片的批量下载,只所以可以这样做,是因为豆瓣提供的XHR的接口API,而且接口返回的数据类型为json格式,所以使用起来非常的方便,但是有时候我们需要分析html格式 ...

  7. selenium自动爬取网易易盾的验证码

    我们在爬虫过程中难免会遇到一些拦路虎,比如各种各样的验证码,时不时蹦出来,这时候我们需要去识别它来继续我们的工作,接下来我将爬取网一些滑动验证码,然后通过百度的EasyDL平台进行数据标注,创建模型, ...

  8. Python+selenium自动循环扔QQ邮箱漂流瓶

    Python代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import ...

  9. Python+selenium自动循环送贺卡

    Python源代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import ...

随机推荐

  1. 使用JS实现可断点续传的文件上传方案

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  2. 字典树模板( 指针版 && 数组版 )

    模板 :  #include<string.h> #include<stdio.h> #include<malloc.h> #include<iostream ...

  3. 【BZOJ5092】分割序列(高维前缀和)

    题意:对于一个长度为n的非负整数序列b_1,b_2,...,b_n, 定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b_2 xor...xor b_i)+(b_{ ...

  4. 手写Tomcat源码

    http://search.bilibili.com/all?keyword=%E6%89%8B%E5%86%99Tomcat%E6%BA%90%E7%A0%81 tomcat源码分析一:https: ...

  5. 6.12友谊赛T4城市交通费题解

    与普通的最短路径不同的是,题目中新引入了一个计入总体的费用——城市建设费.由于城市建设费由整体的某最大值决定,导致解没有最优子结构的性质,给思维带来难度. 既然最棘手的是城市建设费,我们就对它分类讨论 ...

  6. github 的 fork 取消功能

    进入该 fork 目录后 找到 Settings 点击后拉到底 找到含有 Delete 字样的按钮点击 弹出的对话框输入你删除的这个项目名 后删除 链接

  7. Actor Roles 图示

    Udemy上的教程<Unreal Multiplayer Mastery - Online Game Development in C++>中对Actor Roles的总结非常直观到位,一 ...

  8. Oracle--创建TRIGGER实现跟踪用户登录信息

    ---创建日志表记录用户登录信息create  table user_log(  user_id         VARCHAR2(30),  session_id      NUMBER(10),  ...

  9. ES6 二进制和八进制字面量

    ES6 支持二进制和八进制的字面量,通过在数字前面添加 0o 或者 0O 即可将其转换为二进制值: let oValue = 0o10; console.log(oValue); // 8 let b ...

  10. Hypermesh中弹簧单元设置

    1D >> springs 单元类型 CBUSH1D 单元属性 PBUSH1D