python之selenium调用xpath实现网页操作

打印 上一主题 下一主题

主题 521|帖子 521|积分 1563

目录

源码
  1. from selenium import webdriver
  2. #import pyautogui
  3. from time import sleep
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.chrome.service import Service
  6. s = Service("msedgedriver.exe")
  7. driver = webdriver.Edge(service=s)
  8. driver.get('http://192.168.28.101/WebLog/index.jsp?userName=jianghj')   #打开网页
  9. driver.maximize_window()                    #最大化窗口
  10. #进入填写当前日志frame
  11. driver.switch_to.frame("leftFrame")
  12. driver.find_element(by=By.XPATH, value="/html/body/a[1]").click()
  13. sleep(1)
  14. driver.switch_to.default_content() #切换回主frame 以进入列表frame进行填写
  15. driver.switch_to.frame("mainFrame") #列表和进入列表的frame都是mainFrame
  16. def commit():        #提交
  17.         driver.find_element(by=By.XPATH, value="/html/body/form/p/input[1]").click()  #提交按钮
  18.         #sleep(1)
  19.         #处理网页弹框
  20.         alert=driver.switch_to.alert
  21.         print(alert.text)
  22.         alert.accept()
  23.         alert.accept()
  24. def review():        #复核
  25.         driver.find_element(by=By.XPATH, value="/html/body/form/p/input[2]").click()  #复核按钮
  26.         #sleep(1)
  27.         #处理网页弹框
  28.         alert=driver.switch_to.alert
  29.         print(alert.text)
  30.         alert.accept()
  31.         alert.accept()
  32.         sleep(1)
  33. def listname(listname):        #进入表格
  34.         driver.find_element(by=By.XPATH, value=listname).click() #进入表格 也是mainframe
  35.         commit()        #提交
  36.         #复核
  37.         driver.find_element(by=By.XPATH, value=listname).click()
  38.         #sleep(1)
  39.         review()        #复核
  40.        
  41. listname("/html/body/table/tbody/tr[2]/td[2]/a")
  42. listname("/html/body/table/tbody/tr[3]/td[2]/a")
  43. listname("/html/body/table/tbody/tr[4]/td[2]/a")
  44. listname("/html/body/table/tbody/tr[5]/td[2]/a")
  45. listname("/html/body/table/tbody/tr[6]/td[2]/a")
  46. listname("/html/body/table/tbody/tr[7]/td[2]/a")
  47. listname("/html/body/table/tbody/tr[8]/td[2]/a")
  48. listname("/html/body/table/tbody/tr[9]/td[2]/a")
  49. listname("/html/body/table/tbody/tr[10]/td[2]/a")
  50. listname("/html/body/table/tbody/tr[11]/td[2]/a")
  51. listname("/html/body/table/tbody/tr[12]/td[2]/a")
  52. listname("/html/body/table/tbody/tr[13]/td[2]/a")
  53. listname("/html/body/table/tbody/tr[14]/td[2]/a")
  54. listname("/html/body/table/tbody/tr[15]/td[2]/a")
  55. listname("/html/body/table/tbody/tr[16]/td[2]/a")
  56. listname("/html/body/table/tbody/tr[17]/td[2]/a")
  57. listname("/html/body/table/tbody/tr[18]/td[2]/a")
  58. listname("/html/body/table/tbody/tr[19]/td[2]/a")
  59. listname("/html/body/table/tbody/tr[20]/td[2]/a")
  60. listname("/html/body/table/tbody/tr[21]/td[2]/a")
  61. listname("/html/body/table/tbody/tr[28]/td[2]/a")
  62. listname("/html/body/table/tbody/tr[30]/td[2]/a")
  63. listname("/html/body/table/tbody/tr[31]/td[2]/a")
  64. listname("/html/body/table/tbody/tr[32]/td[2]/a")
复制代码
过程中遇到的主要问题

1.调用xpath之前 需要先调用frame 以定位!!!
2.定位到新的frame 需要先退出之前的frame
主要涉及的技术处理

1.xpath调用
2.浏览器驱动调用
3.网页弹框处理
4.传参调用函数

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表