selenium学习使用操作大全(Python版)——其他问题-灵析社区

熊Sir

其他问题

1、svg定位

问题描述:
使用xpath方法对svg下元素进行定位,会发现无法定位到svg下的元素:

driver.find_element(xpath,"/html/body/div[19]/svg")

解决方法1【错误】:
从svg元素开始,下面的元素都要以
*[name()=‘svg element’] 这种形式进行编写

driver.find_element(xpath,"/html/body/div[19]/*[name()='svg']/*[name()='path']")

会发现仍然定位不到;
解决办法2【正确】:
绝对路径的话,
*[name()='svg']前面得加双斜杠,不然定位不到:

driver.find_element(xpath,"/html/body/div[19]//*[name()='svg']")

相对路径的话,*[name()='svg']前就不用加双斜杠,只用单斜杠:

driver.find_element(xpath,"//*[@id='userinfo']/*[name()='svg']/*[name()='use']")

2、处理chrome显示通知弹框

使用chrome打开weibo.com会出现以下界面的弹出框:

这东西不属于页面alert弹框,而是属于浏览器的设置项。

要关掉它,需要对浏览器进行属于配置。具体见下面脚本:

from selenium import webdriver

options = webdriver.ChromeOptions()
prefs = {
    'profile.default_content_setting_values':{
        'notifications':2
    }
}
options.add_experimental_option('prefs',prefs)
driver = webdriver.Chrome(options = options)
driver.get("https://blog.csdn.net/testleaf/article/details/123269042")

3、获取元素的文本

①element.text

②get_attribute(“textContent”)

优点:可以获取隐藏元素的文本

缺点:IE不支持;获取有些元素的文本时,结果中带有空字符串;(没有尝试过)

③get_attribute("innerText")

优点:可以获取隐藏元素的文本

缺点:FireFox不支持;(每个博客能搜到的都说这个缺点,但实际操作发现可以获取到每次所需的文本)

4、切换网址

直接进行切换就可以了,如下:

driver.get('https://blog.csdn.net/testleaf/article/details/123269042')
time.sleep(2)
driver.get('https://blog.csdn.net/testleaf/article/details/123302863')

5、find_element_by_xpath()被弃用解决方案

from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome() #启动chromedriver
driver.get('http://www.baidu.com') #打开http://www.baidu.com
driver.find_element(By.XPATH,'//div[@class="detail-item-ctn"][1]').click() #点击按钮


阅读量:2022

点赞量:0

收藏量:0