Selenium在定位的class含有空格的复合类的解决办法整理

1.class属性唯一但是有空格,选择空格两边唯一的哪一个

<div id="tempConfigTable" class="dtb-style-1 table-dragColumns" style="height: 371px; position: relative;">

<th id="" tid="grid-row-2" class="tabth  field_security_dispay txt-left ">

2.class属性科普

? class属性中间的宫格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称,class属性是比较特殊的一个,除了class这个元素类型有多个属性外,其他的像name,id是没多个属性的。

3.class的定位

? 既然知道class属性有空格就是有多个属性了,那么定位的时候取其中一个就行(并且要确定他的唯一性),也就是说   class="dtb-style-1 table-dragColumns"这两个属性选其中一个就行,取dtb-style-1 or  table-dragColumn都是可以的,只要想办法保持唯一性就行。

4.判断元素唯一性

? F12切换到HTML界面,Ctrl + f 出现搜索框然后输入关键字如:然后回车,如图所示:

5.class属性不唯一怎么办

? 如果这个class的多个属性都不唯一怎么办?元素不唯一不要慌,可以用复数定位,把所有相同元素定位出来,按下表取第几个就行。

如:

self.driver.find_elements_by_class_name(‘table-dragColumn‘)[0].click()

6.css定位

? css定位class多个属性时要给元素前面加个点(.)就行,然后空格变成了点(.)就能定位了

?当然css也可以取class属性的其中一个属性(保证唯一性)来定位,定位方法是灵活多变的。

如:

?css定位:

self.driver.find_element_by_css_selector(‘.dtb-style-1.table-dragColumns‘).click()#前面加(.)空格地方用点(.)来代替

?class单个属性定位

self.driver.find_element_by_css_selector(‘.table-dragColumns‘).click()#用单个属性来定位前面加个(.) 

?直接包含空格的css定位神器

self.driver.find_element_by_css_selector(‘class="dtb-style-1 table-dragColumns‘).click()#包含整个类

原文地址:https://www.cnblogs.com/insane-Mr-Li/p/9085385.html

时间: 2024-08-01 18:28:38

Selenium在定位的class含有空格的复合类的解决办法整理的相关文章

selenium webdriver定位不到元素的五种原因及解决办法

转自http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[c

转载:selenium webdriver定位不到元素的五种原因及解决办法

1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));        WebElement xiexin_element = driver.findElement(By.xpath("//span[contains(.,'写 信')]"));        xiexin_element.click

git中进入带有空格的目录下的解决办法

比如:要进入Program Files目录下 有两种方法: 1.将Program Files目录用引号引起来. $ cd "Program Files" 2.将空格处使用空格引号 $ cd Program" "Files

Mongo.exe 无法定位程序输入点terminate于动态链接库 *.dll的解决办法

Win7 或者Winserver 上安装新版的Mongo后,总是提示如上问题,可使用如下方法解决: 一是系统更新到SP1,并安装了KB2999226这个更新包(重要): 二是安装安装 Visual C++ 2015 Redistributable (vs_redist.x64.exe) 原文地址:https://www.cnblogs.com/gavin-num1/p/8274795.html

Selenium::WebDriver::Error::WebDriverError:Unable to find standalone executable解决办法

情况描述: 在Watir-Webdriver环境下运行脚本报错(红色标记部分): C:\>irbirb(main):001:0> require 'watir-webdriver'=> trueirb(main):002:0> Watir::Browser.new :ieSelenium::WebDriver::Error::WebDriverError: Unable to find standalone executable. Please download the IEDri

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然

【Python】Selenium元素定位错误之解决办法

当使用class定位元素时发现报错: 错误信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound class names not permitted(复合类的名称不允许) 网上查询资料得知: className不允许使用复合类名做参数[原文] 真实环境中元素往往使用复合类名(即多个class用空格分隔),使用className定位时要注意了,className的参数只能是一个class. 例如图中显示的c

Java中通过Selenium WebDriver定位iframe中的元素

问题:有一些元素,无论是通过id或是xpath等等,怎么都定位不到. 分析:这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位. 解决办法:我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位. 因为最近在用Java来做一些东西,所以就顺便说一下Selenium在Java环境下的使用,总共分三步

Selenium元素定位学习教程

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就一起学习Selenium以及它是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver和 WebEle