根据元素标签名来选择元素的基本方法包括哪些内容?

按元素标签名称选择元素:

7.1.3、选择元素方法三:通过WebElement对象选择元素

不仅 WebDriver 对象有选择元素的方法,而且 WebElement 对象也有选择元素的方法。

WebDriver 对象选择整个网页范围内的元素,而 WebElement 对象选择元素内的元素。

WebElement 对象也可以使用 find_element_by_XXX、find_elements_by_XXX 等方法。

新增:等待界面元素出现

关于睡眠等待时间,Selenium 有一个更好的解决方案:当发现找不到元素时,不会立即返回找不到元素的错误。而是周期性地(每半秒)重新查找元素,直到找到元素,或者超过指定的最大等待时间,然后抛出异常(如果是find_elements等方法,则返回空列表)。Selenium 的 Webdriver 对象有一个名为implicitly_wait 的方法,它接受一个参数来指定最大等待时间。

7.2、操作元素的基本方法

操纵要素通常包括

1、点击元素:click() 方法。

2、在一个元素中输入一个字符串css选择器中大于号,通常是一个输入框之类的元素,比如send_keys()方法。

3、获取元素中包含的信息,如文本内容、元素的属性。

3.1、获取元素显示的文本内容

通过 WebElement 对象的 text 属性,可以获取界面上显示的元素的文本内容。但有时,一个元素的文本内容没有显示在界面上,或者没有完全显示在界面上。这时候使用WebElement对象的text属性来获取文本内容,就会出现问题。在这种情况下,您可以使用

element.get_attribute(‘innerText’)

要么

element.get_attribute(‘textContent’)

3.2、获取元素属性

每次程序运行时打开的窗口太多。要解决这个问题,可以使用 quit() 方法。

3.3、获取整个元素对应的HTML

要获取整个元素对应的 HTML 文本内容,可以使用

element.get_attribute(‘outerHTML’)

只想获取元素内的 HTML 文本内容,可以使用

element.get_attribute(‘innerHTML’)

3.4、获取输入框中的文字

对于input输入框的元素,要获取里面的输入文本,是不能使用text属性的。这时候,你可以使用

element.get_attribute(‘值’)

7.3、CSS 表达式

大于’/>

通过 CSS 选择器语法选择元素。

CSS 必须告诉浏览器选择哪些元素并显示特定样式。

通过 CSS Selector 选择单个元素的方法是:

find_element_by_css_selector(CSS 选择器参数)

选择所有元素的方法是

find_elements_by_css_selector(CSS 选择器参数)

CSS Selector 还可以根据标签名、id 属性和class 属性来选择元素。根据标签名选择元素的 CSS Selector 语法很简单,直接写标签名即可。例如,要选择标签名为 div 的所有元素,可以这样

元素=wd.find_elements_by_css_selector(‘div’)

相当于

元素=wd.find_elements_by_tag_name(‘div’)

无需添加 . 前面,因为标签名不用加,属性名必须加’.’

根据 id 属性选择元素的语法是在 id 号前面加一个符号:#id 值,中间不能有空格。

选择前任和后代元素

Layer1 和 layer2 是容器的直接子级。

id为inner11、inner12、inner22的元素是容器的后代元素。

如果元素 2 是元素 1 的直接子元素,则用于选择子元素的 CSS 选择器语法如下:

元素 1 > 元素 2

中间大于号(我们可以理解为箭头符号)前面的元素1>的作用是限制范围。

注意最后选中的元素是元素2,这个元素2需要是元素1的直接子元素css选择器中大于号

它还支持更多级别的选择,例如

元素1>元素2>元素3>元素4

就是在元素1中选择子元素元素2中的子元素元素4,在子元素元素3中选择子元素元素4,最终选中的元素是元素4。如果元素2是一个元素 1 的后代,选择后代元素的 CSS Selector 语法如下:

元素 1 元素 2

中间用一个或多个空格隔开,最后选中的元素是元素2,要求这个元素2是元素1的后代。还支持更多层次的选择,比如:

元素 1 元素 2 元素 3 元素 4

最终选择的元素是元素 4

基于属性选择,CSS选择器支持任意属性选择元素,语法为方括号[]。

当然也可以在前面加上标签名限制,例如div[class=’SKnet’]表示选择标签名为div且class属性值为SKnet的所有元素。

植物[名称=’sknet’]

意思是在植物属性下找到name值为sknet的元素。对属性值使用单引号或双引号。

根据属性选择,也可以不指定属性值,如[href],表示所有属性名为href的元素都被选中,不管其值如何。

CSS 还可以选择属性值包含某个字符串的元素。例如选择一个节点,其中的href属性包含miitbeian字符串,可以这样写

a[href*=”miitbeian”]

也可以选择属性值以某个字符串开头的元素。比如选择一个节点,其中的href属性以http开头,可以这样写

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论