python - Run text() of Xpath in selenium -
i going through selenium practice xpath validates in firefox xpath extesion not in python selenium.
e.g. go here , apply xpath //span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br]
works in firefox extension not in selenium expression driver.find_elements_by_xpath("//span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br]")
exception facing
traceback (most recent call last): debug probe, prompt 17, line 1 file "c:\python27\arcgis10.3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 270, in find_elements_by_xpath return self.find_elements(by=by.xpath, value=xpath) file "c:\python27\arcgis10.3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 739, in find_elements {'using': by, 'value': value})['value'] file "c:\python27\arcgis10.3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute self.error_handler.check_response(response) file "c:\python27\arcgis10.3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 181, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.invalidselectorexception: message: given selector //span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br] either invalid or not result in webelement. following error occurred: invalidselectorerror: result of xpath expression "//span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br]" is: [object text]. should element.
any welcome.
for multiple returning record:
driver.get("http://www.hotleathers.com/front-printed-t-shirts-c1232.aspx?s=orderby%20asc&&v=all") returntext = [] returntext = self.driver.execute_script("var iterator = document.evaluate(\"//span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br]\", document, null, xpathresult.ordered_node_iterator_type, null ); var arrayxpath = new array(); var thisnode = iterator.iteratenext(); while (thisnode) {arrayxpath.push(thisnode.textcontent); thisnode = iterator.iteratenext(); } return arrayxpath;") item in returntext: print item
pure javascript code is:
var iterator = document.evaluate('//span[@class='tablenode']/text()[preceding-sibling::br , following-sibling::br]", documentnode, null, xpathresult.unordered_node_iterator_type, null ); try { var thisnode = iterator.iteratenext(); while (thisnode) { alert( thisnode.textcontent ); thisnode = iterator.iteratenext(); } } catch (e) { dump( 'error: document tree modified during iteration ' + e ); }
Comments
Post a Comment