写Selenium代码时一些技巧

本文地址: 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;

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

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

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性能优化与执行速度提升
posted on 2019-05-17 10:31  hchengmx  阅读(839)  评论(0编辑  收藏  举报