Hemanth's Scribes

web

Watir-webdriver Web Inspector

Author Photo

Hemanth HM

Thumbnail

Watir-webdriver Web Inspector

An experimental minimal combinatorial code generation on element inspection. Check out the repo for sending your P.R ;)

The raw code is as below, and it’s evolving!

/_Author : Hemanth.HM Site : h3manth.com License : GNU GPLV3_ /

/Red block around selection / function highlight_on(evt) {

element = evt.target;
element.style.borderWidth = '3px';
element.style.borderStyle = 'solid';
element.style.borderColor = 'red';

}

/Remove the red highlight / function hightlight_off(evt) {

evt.target.style.borderStyle = 'none';

}

/Generated the @browser#method on click As of now just console.logs / function gen_code(evt) {

event.preventDefault() // Prevent click action.
var elem = evt.target; // Get the elem under inspection.
var tag_name = elem.tagName.toLowerCase(); // Get the tag_name.
// Input type has few variations.
if (tag_name == "input") {
    switch (elem.type) {
    case "button":
    case "reset":
    case "submit":
    case "image":
        tag_name = "button";
        break;
    case "radio":
        tag_name = "radio";
        break;
    case "checkbox":
        tag_name = "checkbox";
        break;
    case "file":
        tag_name = "file_field";
        break;
    default:
        tag_name = "text_field";
    }
}
var attribs = elem.attributes;
for (var i = 0; i < attribs.length; i++) {
    var name = attribs[i].nodeName;
    var val = attribs[i].nodeValue;
    // Avoding style and onclick attrs.
    if (['style', 'onclick'].indexOf(name) < 0) {
        // Log all possible name=>val except 
        console.log( "@browser." + tag_name + "(:" + name + "=>'" + val + "')");
    }
}
// Log :text=>text variant.
console.log( "@browser." + tag_name + "(:text=>'" + evt.target.innerText.toLowerCase() + "')");
return false;

}

// Event listners. document.addEventListener(“mouseover”, highlight_on, true); document.addEventListener(“mouseout”, hightlight_off, true); document.addEventListener(“click”, gen_code, true);

#javascript#linux
Author Photo

About Hemanth HM

Hemanth HM is a Sr. Machine Learning Manager at PayPal, Google Developer Expert, TC39 delegate, FOSS advocate, and community leader with a passion for programming, AI, and open-source contributions.