python selenium 点击按钮 无效_使用Python绑定,Selenium WebDriver click()有时不起作用。...

在自动化测试中遇到一个问题,使用Selenium WebDriver的click()方法点击按钮无效。测试代码示例展示了尝试点击元素的详细过程,包括各种等待和查找策略。问题出现在尝试提交新项时,点击操作未成功触发。
摘要由CSDN通过智能技术生成

我试图提交一个输入(type=button),但无法更新该值。

如有任何帮助,我们将不胜感激。

我附上了下面的测试用例供您参考。

在此处搜索单击失败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()

它一直是我工作的一大亮点。谢谢你的帮助。谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值