使用firefox浏览器,查看页面元素,我们以“百度网页”为示例 一.ID定位元素    利用find_element_by_id()方法来定位网页元素对象 ①.定位百度首页,输入框的元素 ②.编写示例代码信息如下: #coding=utf-8 from selenium import webdriver driver=webdriver.Chrome() #打开chrome,如果没有安装chrome,换成firefox或ie浏览器 driver.maximize_window() #最大化浏览…
Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[text()='百度新闻']/..") print(type(self.new_ads_plan)) self.driver.find_element(self.new_ads_plan).click() 运行经常报错:selenium.common.exceptions.WebDriverExcepti…
世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等等,但是这些方法局限性太大,拿id属性来说,首先一定不会每个元素都有id属性,其次元素的id属性也不一定是固定不变的.所以这些方法了解一下即可,我们真正需要熟练掌握的是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了. 下面总结一下xpath的定位方法,结合自己练习的实例加深一…
什么样的是动态id呢? 动态id就是第一次点击显示的id与二次点击显示的不一样,一般是元素属性中包含一段数字的这种情况. 类似这种: 1 <input type="button" value="选择" id="btncussel1452"> 这种情况,个人觉得比较简单的定位方法是用XPath来根据部分元素属性定位即模糊定位: 有三种情况: 1  driver.find_element_by_xpath("//input[st…
第一篇讲了xpath定位的一些基本定位方法,这里再介绍一种:xpath轴定位,应用场景是当某个元素的各个属性及其组合都不足以定位时,那么可以利用其兄弟节点或者父节点等各种可以定位的元素进行定位. 1.xpath轴是什么 w3cschool上的定义如下: 语法 2.具体应用 (1)descendant表示取当前节点的所有后代元素 定位百度首页的“百度一下”按钮 可以看到, <input>标签的父元素是<span>标签,而<span>标签的父元素是<form>标…
方法1 在登录时,叫代码等待一段时间,然后手动输入验证码 # coding:utf-8 from selenium import webdriver import time url = 'http://192.168.XXX:7001/AXXXse' driver = webdriver.Chrome() driver.get(url) # 进入登录首页 driver.maximize_window() # 窗口最大化 time.sleep(3) driver.find_element_by_i…
先上代码 1 from selenium import webdriver 2 from time import sleep 3 4 dr = webdriver.Chrome() 5 dr.get("https://www.cnblogs.com/") #导入cookie 6 cookies =[ 7 { 8 "domain": ".cnblogs.com", 9 "expirationDate": 1640700103,…
From:https://stackoverflow.com/questions/42781483/right-click-on-an-href-and-choose-save-link-as-in-python-selenium/42783015原生代码:from selenium import webdriver from selenium.webdriver import ActionChainsimport pyautogui driver = webdriver.Chrome() dr…
我们工作中经常用到的定位方式有八大种:id name class_name tag_name link_text partial_link_text xpath css_selector 本篇内容主要说我们功能最强大的xpath定位 1.xpath绝对路径定位: 语法:直接页面所有标签一级一级向下指定,直到找到自己定位的元素:例如:html/body/div/div/span/input 2.根据标签属性进行定位: 语法://标签名[@属性名="属性值"]  标签名可以使用*代替,*表…
在做登录脚本的时候,如果只是单纯从登录页面进行元素定位的话,并不存在这个问题 但实际情况是,从首页A进入到登录页面B(并非弹出框),这时候在页面B无法定位到该页面的元素 问题:从页面A进入页面B,无法定位B页面的元素 原因:当启动脚本后,从页面A打开页面B后,窗口句柄(焦点)依旧停留在主页面A,所以无法定位页面B的元素 解决方法:比较笨一点的方法,就是将窗口句柄(焦点)切换到当前页面 fc.switch_to_window(fc.window_handles[1]) 这种方法在页面相对比较少的情…