Python--Web自动化

学习资料 

from selenium import webdriver

wd = webdriver.Chrome(r'c:\chromedriver.exe')

wd.get('http://www.baidu.com')

#选择元素1
element = wd.find_element_by_id('kw')
element.send_keys('python')
element = wd.find_element_by_id('su')
element.click()
#element.send_keys('python\n') 中的\n就是click()

#选择元素2:找到多个
elements = wd.find_elements_by_class_name() #list形式
for element in elements:
    print(element.text)
#element = wd.find_element_by_class_name() 只返回找到的第一个
#wd.find_elements_by_class_name()没有符合条件的 返回空列表
#wd.find_element_by_class_name() 没有符合的 报错

#选择元素3:
elements = wd.find_element_by_tag_name('span')
for element in elements:
    print(element.text)

#选择元素4:
#通过WebElement选择:对应元素内部
#通过wWbdriver选择:整个页面
spans = wd.find_element_by_tag_name('span')
span = wd.find_element_by_tag_name('span')



#选择元素5:
#对搜索出来的结果选取
import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.get('http://www.baidu.com')

element = wd.find_element_by_id('kw')
element.send_keys('python\n')
time.sleep(1) #加载页面
element = wd.find_element_by_id('2')

print(element.text)



#选择元素5:
#对搜索出来的结果选取
import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://www.baidu.com')

element = wd.find_element_by_id('kw')
element.send_keys('python\n')
element = wd.find_element_by_id('2')

print(element.text)




import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://www.baidu.com')
wd.find_element_by_id('kw').send_keys('python')
wd.find_element_by_id('su').click()
element = wd.find_element_by_id('2')
# 点击元素
print(element.text)
wd.quit() #关闭窗口



import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://www.baidu.com')
wd.find_element_by_id('kw').send_keys('python')
wd.find_element_by_id('su').click()
element = wd.find_element_by_id('2')
# 点击元素
#print(element.get_attribute('outerHTML'))#获取当前element所在类下所有信息
print(element.get_attribute('innerHTML')) #获取当前element之下的所有信息
wd.quit() #关闭窗口


import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://www.baidu.com')
wd.find_element_by_id('kw').send_keys('python')
wd.find_element_by_id('su').click()
element = wd.find_element_by_id('2')
print(element.get_attribute('innerText'))#获取全部文本
print(element.get_attribute('textContent'))#获取全部文档
wd.quit() #关闭窗口


# CSS Selector 根据位置来

wd.find_element_by_css_selector('.animal')  #.表示值<.animal> class
wd.find_element_by_css_selector('#1') #寻找id值是1,前面用’#‘
wd.find_element_by_css_selector('animal')  # <animal>
    # 相当于wd.find_element_by_tag_name('animal')

# 寻找 子元素 和 后代元素
# 元素1 元素2 元素3....满足上层到下层次 不一定是父代
# 元素1>元素2>元素3....由父代到子代
# 这两种写法可以混用
elements = wd.find_elements_by_css_selector('[href="http://www.miitbei......"]') #根据属性中的特殊值来选择

# ctrl+f 直接看写法是否正确

#表示或 用,
#.plant,.animal     #plant或者animal类
#.plant,#kw         #palnt类或者id为kw
# #t1>span,p  ==>  #t1>span 或者 p
# #t1>span,#t1>p  ==>  #t1>span 或者 #t1.p

# 按照次序来选择子节点
#   span:nth-child(2) # 每个span里面的第2个子节点
#   span:nth-lastchild(2) # 每个span倒数第2 个子节点
#   span:nth-of-type(2) #每个父节点下的第2个span
#   #t1 :nth-child(odd)
#   #t1 :nth-child(even)
#   #t2 p:nth-of-type(odd)  #类型为奇数的t2下的p节点...

#兄弟节点:
# h3+span  #选取 h3后面紧跟着的span
# h3~span  #h3后面的所有span



# frame 切换
wd.switch_to.frame(frame_reference)  #在frame内层去操作,html在frame中
wd.switch_to.default_content() #切换到外层

# 切换到新的窗口
mainWindow = wd.current_window_handle  #把现在的存下来,方便以后返回
for handle in wd.windows_handles:
    wd.switch_to.window(handle)  
    if 'Bing' in wd.title:
        break   #切换到含‘bing’的网页
print(wd.title)

wd.swittch_to.window(mainWindow)  #切换回最初的页面


# radio选择框:点选 单选
wd.find_element_by_css_selector('#s_radio input[value="xiaolei"]'.click()

#checkbox框  多选 先全部还成未点击 再点选
elements = wd.find_elements_by_css_selector('#s_checkbox input[checked="checked"]')
for element in elements:
    element.click()
wd.find_element_by_css_selector('#s_radio input[value="xiaolei"]'.click()

#select类 :select_by_value  //select_by_index //select_by_visible_text
# deselect_by_value  //deselect_by_index //deselect_by_visible_text //deselect_all
from selenium.webdriver.support.ui import Select
select = Select(wd.find_element_by_id("ss_single")) #Select(类)
select.select_by_visible_text("xiaoleilaishi")


#action_Chains的高级操作
import time
from selenium import webdriver
wd = webdriver.Chrome(r'c:\chromedriver.exe')
wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://www.baidu.com')

from selenium.webdriver.common.action_chains import ActionChains

ac = ActionChains(wd)
#把光标移到 元素上
ac.move_to_element(wd.find_element_by_css_selector('[name="tj_briicon"]')).perform()


#冻结页面
# 在 开发者工具栏 console 里面执行如下js代码
# setTimeout(function(){debugger}, 5000) #过5s冻住,给时间给你动到想到的位置


from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://f.python3.vip/webauto/test4.html')


# --- alert ---
driver.find_element_by_id('b1').click()

# 打印 弹出框 提示信息
print(driver.switch_to.alert.text)

# 点击 OK 按钮
driver.switch_to.alert.accept()





from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://f.python3.vip/webauto/test4.html')

# --- confirm ---
driver.find_element_by_id('b2').click()

# 打印 弹出框 提示信息
print(driver.switch_to.alert.text)

# 点击 OK 按钮
driver.switch_to.alert.accept()

driver.find_element_by_id('b2').click()

# 点击 取消 按钮
driver.switch_to.alert.dismiss()



from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://f.python3.vip/webauto/test4.html')


# --- prompt ---
driver.find_element_by_id('b3').click()

# 获取 alert 对象
alert = driver.switch_to.alert

# 打印 弹出框 提示信息
print(alert.text)

# 输入信息,并且点击 OK 按钮 提交
alert.send_keys('web自动化 - selenium')
alert.accept()

# 点击 Cancel 按钮 取消
driver.find_element_by_id('b3').click()
alert = driver.switch_to.alert
alert.dismiss()


'''import time
from selenium import webdriver

wd = webdriver.Chrome(r'c:\chromedriver.exe')

wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://f.python3.vip/webauto/test1.html')
elements = wd.find_elements_by_xpath('/html/body/div') #   #直接子节点 根节点:html 绝对路径
for element in elements:
    print(element.text)
    #print(element.get_attribute('outerHTML'))
wd.quit() #关闭窗口



'''
import time
from selenium import webdriver

wd = webdriver.Chrome(r'c:\chromedriver.exe')

wd.implicitly_wait(10) #如果当前页面没有找到,不会立刻报错,每隔半秒钟去找,最多等10s
wd.get('http://f.python3.vip/webauto/test1.html')
elements = wd.find_elements_by_xpath('/html/body/div')
elements = wd.find_elements_by_xpath("//div//p") #在里面的节点  div/* :*表示任意
for element in elements:
    print(element.text)
wd.quit() #关闭窗口





 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值