I got a html snippet like this:
<input type="text" node-type="searchInput" autocomplete="off" value="" class="W_input" name="14235541231062">
The only unique identity of this element in the html is the attribute node-type="searchInput"
,so I want to locate it by using some method of Python selenium sort of like this:
search_elem = driver.find_element_by_xxx("node-type","searchInput") # maybe?
I have checked the selenium(python) document for locating elems but didn't get a clue of how to locate this elem by the node-type
attr. Is there a explicit way to locate this elem in python selenium?
We can find an element using the attribute name with Selenium webdriver using the locators - name, css, or xpath. To identify the element with css, the expression should be tagname[name='value'] and the method to be used is By. cssSelector.
get_attribute method is used to get attributes of an element, such as getting href attribute of anchor tag. This method will first try to return the value of a property with the given name. If a property with that name doesn't exist, it returns the value of the attribute with the same name.
Luckily, Selenium offers a few methods you can use to find elements. One of the options the Selenium WebDriver library provides for locating HTML elements is the use of the class property. The HTML class property is used for setting a class to an HTML element.
You can get it by xpath and check the node-type
attribute value:
driver.find_element_by_xpath('//input[@node-type="searchInput"]')
Even though the question is old but it's still very relevant I believe. You may be able to use simple css selector and the syntax is standard javascript similar to jquery or native browser support.
driver.find_element_by_css_selector('span.className[attrName="attrValue"]')
Example: driver.find_element_by_css_selector('span.blueColor[shape="circle"]')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With