写Selenium代码时一些技巧

本文介绍了Chrome插件“CSS Selector Helper for Chrome”,它能显示定位元素及其祖先的Css属性,还说明了找元素的步骤。同时提到定位自动消失元素时,可利用Chrome的DevTools等待元素加载。此外,还涉及Chrome的headless模式和最大化窗口相关内容。

本文地址: https://www.cnblogs.com/hchengmx/p/10880002.html

1. Chrome插件之"CSS Selector Helper for Chrome"。

对于复杂网页。
这个插件可以显示出当前定位元素,它的和它的所有祖先的Css属性,选中属性可以查看,"要是以当前选择的为CssSelector,当前页面可以匹配多少个元素"。

所以找一个元素分为这样几个步骤:

  1. 在chrome下,使用 Shift + Ctrl + C,并用鼠标移动,找到需要定位的元素。
  2. F12打开DevTools;
  3. 鼠标点击当前元素的html代码;
  4. 点击Get Selector;
  5. 选择当前结点唯一属性,或者是易读易理解的属性,要是无唯一属性,找父节点的唯一属性,用祖先子类选择器定位元素
  6. Selector to Clipboard;
    6ac80d2egy1g33akomzsxj218i0nxjv6.jpg

2. 定位会自动消失的元素;

在写等待的时候,有些元素会自动消失,在不同的网络条件下可能加载速度不一样,所以就要等待这个元素加载成功。可以用Chrome的DevTools,当等到需要等的元素的时候,就停止网页加载。
6ac80d2egy1g33aq6qifoj218g0a1gmq.jpg

3. Chrome的headless模式和最大化窗口

public ChromeDriverFactory()
{
    var chromeOptions = new ChromeOptions();
    chromeOptions.AddArguments(new string[]{
            "--window-size=1920,1080",  //headless默认为这么大,这样就可以截屏就是整个页面;
            "--headless", 
            //"start-maximized",  //要是不想用headless,就注释掉上面两行,不注释这一行
            "–disable-gpu",
            "–disable-dev-shm-usage",
            "–disable-setuid-sandbox",
            "–no-first-run",
            "–no-sandbox",
            "–no-zygote",
            "–single-process"
        });
    this.options = chromeOptions;
}

参考资料:

  1. Puppeteer性能优化与执行速度提升

转载于:https://www.cnblogs.com/hchengmx/p/10880002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值