导航
当前位置:网站首页 > 网站黑客 > xpath定位元素实例,xpath多属性定位

xpath定位元素实例,xpath多属性定位

作者:hacker 日期:2022-09-20 分类:网站黑客

导航:

python+selenium怎么定位页面弹窗的元素

1、问题发生描述xpath定位元素实例

从一个页面进行点击等操作xpath定位元素实例,页面跳转到第二个页面xpath定位元素实例,对第二个页面中xpath定位元素实例的元素xpath定位元素实例,采取任何措施定位都报错,问题报错点如下:

2、出现问题的原因:

窗口句柄还停留在上一个页面,对于当前新弹出的页面还没有定位,因此新页面的任何元素都定位不到

3、解决方案:

在新页面操作元素之前,需添加句柄操作,方式如下:

1、使用driver.current_window_handle #获取当前窗口句柄,添加此方法,仍报相同的错误,因此不能采用这种方式进行解决问题

2、使用driver.switch_to_window(driver.window_handles[1]),或者 driver.switch_to_window(self.driver.window_handles[-1]) ,两种方式中任选一种即可找到对应的元素

添加后的代码如下:

每天记录进步一点点.........

appium使用xpath定位元素并点击,为什么查找不到元素呢

这样定位会报错。xpath是按照树xpath定位元素实例的层级一层一层识别元素。在uiautomatorviewerxpath定位元素实例,识别到的元素前缀都是从0开始xpath定位元素实例,而转换成xpath,是需要从1开始的,类似第一个层级,第二个层级

driver.findElementByXPath(

"//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]")xpath定位元素实例

改写下定位元素到1,继续调试下

pathon selenium爬虫里面如何定位一个button元素?

XPath 定位

第一个button

//div[@id="h"]/button

第二个button

//div[@id="s"]/button

定位到元素后 对象后面加.click()就是点击了

xpath("android.widget.EditText[@index='7']").click()无法定位元素,而且用class定位控件值都是一样的

1.如果元素text是唯一的,可以通过text文本定位

//*[@text=’text文本属性’]

# 定位text

driver.find_element_by_xpath("//*[@text='扫一扫']").click()

2.如果元素id是唯一的,也可以id属性定位

//*[@resource-id=’id属性’]

# 定位 resource-id

driver.find_element_by_xpath("//*[@resource-id='com.taobao.taobao:id/tv_scan_text']").click()

同样可以联合上面两种方式定位,如下

# 也可以联合@resource-id属性和@text文本属性来下定位

driver.find_element_by_xpth("//*[@resource-id='com.taobao.taobao:id/tv_scan_text'][@text='扫一扫']").click()

3.class属性唯一的话,同样可以通过class属性定位,有两种方法

第一种: //class属性

# 定位搜索框 //class属性

driver.find_element_by_xpath("//android.widget.EditText").click()

第二种: //*[@class=’class属性’]

# 定位搜索框 //*[@class='ae05-1ff3-364f-6482 class属性']

driver.find_element_by_xpath("//*[@class='1ff3-364f-6482-033b android.widget.EditText']").click()

4.通过content-desc属性定位

//*[@content-desc=’desc的文本’]

复制代码

#点登录/注册

driver.find_element_by_xpath("//*[@text='注册/登录']").click()

time.sleep(3)

#content-desc定位

driver.find_element_by_xpath("//*[@content-desc='帮助']").click()

复制代码

contains模糊定位

1)、contains是模糊匹配的定位方法,对于一个元素的id或者text不是固定的,但有一部分是固定的,这种就可以模糊匹配。

selenium IDE 如何定位页面变动元素

定位页面元素主要有以下几种方法

//通过Id定位元素

WebElement element = driver.findElement(By.id(“id名"));

//通过name定位元素

WebElement element = driver.findElement(By.name(“name名"));

//通过xpath定位元素

WebElement element = driver.findElement(By.xpath(“xpath路径"));

//通过标签xpath定位元素实例的值定位元素

WebElement cheese = driver.findElement(By.linkText(“标签xpath定位元素实例的值"));

//通过classxpath定位元素实例的值定位元素

List list=driver.findElements(By.className(“class值"));

//通过标签名定位元素

List list = driver.findElements(By.tagName(“标签名"));

xpath定位定位到元素 怎么不变黄色

xpath定位方法详解:

1.xpath较复杂的定位方法:

//from[@id='login_from']dl/dt/input[@id='j_password']

或者写成 input[@id='j_password']'));

2.xpath的模糊定位方法:

a、用contains关键字定位:

driver.findElement(By.xpath('//a[contains(@href,'logout')]'));

b. 用start-with,定位代码如下:

driver.findElement(By.xpath(“//a[starts-with(@rel, ‘nofo’)]));

c. 用Text关键字,定位代码如下:

driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));

d.如果知道超链接元素的文本内容,也可以用

driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));

3.XPath 关于网页中的动态属性的定位,例如,ASP.NET 应用程序中动态生成 id 属性值,可以有以下四种方法:

//input[contains(@id,'crtl')]

//input[starts-with(@id,'crtl')]

//input[ends-with(@id,'crtl')]

//input[contains(text(),'退出')]

猜你还喜欢

已有3位网友发表了看法:

  • 访客

    访客  评论于 [2022-09-20 07:32:16]  回复

    indow_handles[1]),或者 driver.switch_to_window(self.driver.window_handles[-1]) ,两种方式中任选一种即可找到对应的元素添加后的代码如下:每天记录进步一点

  • 访客

    访客  评论于 [2022-09-20 15:26:15]  回复

    v[@id="s"]/button定位到元素后 对象后面加.click()就是点击了xpath("android.widget.EditText[@index='7']").click()无法定位元素,而且用cla

  • 访客

    访客  评论于 [2022-09-20 09:10:08]  回复

    rLayout[1]/android.widget.EditText[1]")xpath定位元素实例;改写下定位元素到1,继续调试下pathon selenium爬虫里面如何定位一个button元素?XPath 定位第一个button //div[@id=

欢迎 发表评论:

{/if}