Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing Python bindings, Selenium WebDriver click() is not working sometimes.
    text
    copied!<p>I am trying to submit an input(type= button).But I am unable to update the value. Any help is appreciated. I have attached the testcase below for your reference.</p> <p><strong>search for CLICK FAILS HERE</strong></p> <pre><code>from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time, re,datetime,os,sys from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains def is_element_present(inst,selector,value): try: inst.find_element(by=selector, value=value) return True except: return False class Testing(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(5) self.base_url = "http://new.ossmoketest.appspot.com/" self.verificationErrors = [] def test_ing(self): try: driver = self.driver driver.get(self.base_url + "/Apab4b39d4_09d7_11e1_8df9_139372201eeb/1/signin?forward=/%3F") now = datetime.datetime.now() start = time.clock() for i in range(5000000): try: if is_element_present(driver,By.ID,"userid"): break except: pass else: self.fail("time out") end = time.clock() diff = end - start print diff driver.find_element_by_id("userid").clear() driver.find_element_by_id("userid").send_keys("senthil.arumugam@orangescape.com") driver.find_element_by_xpath("//input[@src='/static/images/signup.png']").click() print 'finished' start = time.clock() for i in range(5000000): try: if is_element_present(driver,By.LINK_TEXT,"Logout"): break except: pass else: self.fail("time out") end = time.clock() diff = end - start print diff time.sleep(5) start = time.clock() name = "smoketest"+ str(now.minute) +str(now.second) for i in range(5000000): try: if is_element_present(driver,By.LINK_TEXT,"PurchaseOrder"): break except: pass else: self.fail("time out") end = time.clock() diff = end - start driver.find_element_by_link_text('PurchaseOrder').click() name = "smoketest"+ str(now.minute) +str(now.second) start = time.clock() for i in range(5000000): try: if is_element_present(driver,By.ID,"Customer_Name"): break except: pass else: self.fail("time out") end = time.clock() diff = end - start newproduct = "rexona"+ str(now.minute) +str(now.second) newprice = str(now.minute) +str(now.second) newprice = float(newprice) print newprice driver.find_element_by_xpath("//input[starts-with(@id,'New_Product')]").send_keys(newproduct) driver.find_element_by_xpath("//input[starts-with(@id,'Price')]").clear() time.sleep(3) driver.find_element_by_xpath("//input[starts-with(@id,'Price')]").send_keys(Keys.CONTROL+'a'+Keys.NULL, str(newprice)) Mouse_cntrl = ActionChains(driver) Mouse_cntrl.release(driver.find_element_by_xpath("//input[starts-with(@id,'Price')]")) value = newprice print value time.sleep(2) print 'start' print driver.find_element_by_xpath("//input[starts-with(@id,'NewItem_NewItem')]").get_attribute('data-id') # ------------------------CLICK FAILS HERE ------------------------------ # driver.find_element_by_xpath("//input[starts-with(@id,'NewItem_NewItem')]").click() # driver.find_element_by_xpath("//input[starts-with(@id,'NewItem_NewItem')]").submit() driver.find_element_by_xpath("//input[starts-with(@id,'NewItem_NewItem')]").send_keys(keys.ENTER) # Mouse_cntrl.double_click(driver.find_element_by_xpath("//input[starts-with(@id,'NewItem_NewItem')]")) for i in range(10): try: print driver.switch_to_alert().text if driver.switch_to_alert(): driver.switch_to_alert().accept() break except: pass time.sleep(1) else: print "alert not found" print 'finished -- ' time.sleep(8) driver.find_element_by_xpath("//input[starts-with(@id,'Product')]").click() arg = newproduct print 'end' for i in range(60): try: if is_element_present(driver,By.LINK_TEXT,arg): break except: pass time.sleep(1) else: self.fail("time out") # sel.mouse_over("//html/body/ul/li/a[.=\""+arg+"\"]") driver.find_element_by_link_text(arg).click() start = time.clock() time.sleep(25) for i in range(1000000): try: if newprice == float(driver.find_element_by_id('Unit_Price').text): end = time.clock() diff = end - start log.log(module='Smoke',testcase='Action New', result='Pass',time_taken= diff) break except: pass else: log.log(module='Smoke',testcase='Action New', result='Fail') self.fail('New Failure') log.log(module='Smoke',testcase='On Submit', result='Pass',time_taken= diff) driver.find_element_by_id('Quantity').send_keys(Keys.CONTROL+'a'+Keys.NULL,"1") time.sleep(5) start = time.clock() for i in range(1000000): try: if value == float(driver.find_element_by_id('Unit_Price').text): end = time.clock() diff = end - start log.log(module='Smoke',testcase='Multiply', result='Pass',time_taken= diff) break except: pass else: self.fail("time out") for i in range(1000000): try: if value == float(driver.find_element_by_id('Amount').text): end = time.clock() diff = end - start log.log(module='Smoke',testcase='DSUM with Parent', result='Pass',time_taken= diff) break except: pass else: end = time.clock() diff = end - start log.log(module='Smoke',testcase='DSUM with Parent', result='Fail',time_taken= diff) self.fail("time out") except: self.driver.quit() e = sys.exc_info()[1] print str(e) def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) if __name__ == "__main__": unittest.main() </code></pre> <p>It has been a showstopper for my work. Any help is appreciated.Thanks</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload