DocuSign - Selenium Python - “签名”“初始”元素

时间:2014-09-17 17:39:22

标签: python selenium-webdriver docusignapi

作为我们基于网络的应用程序的一部分,客户必须在docusign中签订合同,然后生成初始合同。

在文档中,在某些地方需要客户初始化,并且需要一些地方客户签名(这些不是有序的)。我能够做到以下几点。但我得到“元素不可见”的消息。我想当有“初始在这里”时,点击将移动到“在这里签名”。对于所选择的每个合同,这种情如何编写代码以适应这种情况?请告诉我。

 try:

  self.driver.find_element_by_id("chkUserEsign").click() 
  time.sleep(5)
  self.driver.find_element_by_id("ds_hldrBdy_dlgStart_startReview_btnInline").click()

except NoSuchElementException as e:
    print('retry in 10s.')
    time.sleep(1)

try:
  self.driver.find_element_by_id("ds_hldrBdy_navnexttext_btnInline").click() 
except NoSuchElementException as e:
    print('retry in 9s.')
    time.sleep(1)

try:

  listofinitial = self.driver.find_elements_by_xpath("//input[@type='image' and @title='Initial Here']")
  for i in listofinitial:
        i.click()
  self.driver.find_element_by_id("ds_hldrBdy_dlgAdoptSig_btnAdoptSignature_btnInline").click()

  listofsign = self.driver.find_elements_by_xpath("//input[@type='image' and @title='Sign Here']") 
  for j in listofsign:
        j.click()


except NoSuchElementException as e:
    print('retry in 5s.')
    time.sleep(1)    

1 个答案:

答案 0 :(得分:0)

如果能够使用指定的唯一定位器在HTML DOM中找到它,则Click函数将始终单击该元素。除非您使用绝对Xpath或CSS选择器,否则UI中元素的位置无关紧要。 在你的情况下,我假设在UI中可以看到'Initial Here'或'Sign Here'元素,并且你试图找到两者,因为'Element Not Visible'导致测试脚本失败

WebDriver中有一个'isDisplayed'函数,用于检查元素的可见性并返回一个布尔值,为什么在执行单击操作之前不检查两个定位器的可见性。