2017-01-03 12 views
1

要素を見つけたい場合は、以下のような機能があります。以下のコードをご覧ください:要素を検索して要素を削除し、要素が削除されていることを確認します。

1)このコードは、存在するテキストを確認します。

def verifyText(self, text): 
      try: 
       self.switchToFrame(*MainPageLocatars.FRAMEONE) 
       self.switchToFrame(*MainPageLocatars.SUBLISTFRAME) 
       try: 
        self.text.find_element_by_xpath('//td[text() = "%s"]' % text) 
       except: 
        self.text.find_element_by_xpath('//td/span[text() = "%s"]' % text) 
      except: 
       try: 
        self.text.find_element_by_xpath('//td[text() = "%s"]' % text) 
       except: 
        self.text.find_element_by_xpath('//td/span[text() = "%s"]' % text) 

2)この1つは、私は関数は要素が削除されたかどうかを確認するだけで書かれている)要素が

def deleteElement(self, text): 
    driver.find_element_by_id("deletebutton").click() 
    alert = self.driver.switch_to.alert 
    alert.accept() 
を発見し削除します。私はこれを使用したので、再度ベリファイテキスト関数を書こうとは思わなかった。これは正しい方法ですか?

def verifyElement(self, text): 
     if verifyText: 
      raise Exception("Element could not be deleted") 
     else: 
      pass 

答えて

1

あなたverifyText()次のように書き直すことができます://td[.="%s"]試合は両方//td[text()="%s"]//td/span[text()="%s"]

そしてあなたはverifyElement()でそれを使用することができます

from selenium.common.exceptions import NoSuchElementException 

def verifyText(self, text): 
     try: 
      self.switchToFrame(*MainPageLocatars.FRAMEONE) 
      self.switchToFrame(*MainPageLocatars.SUBLISTFRAME) 
     except: 
      pass # Just do nothing if switching to frame failed. I suppose that if it's not in frame, then it's in the main body 
     try: 
      return self.text.find_element_by_xpath('//td[.="%s"]' % text) 
     except NoSuchElementException: 
      return False # if element with specified text is not found 

注こと:

def verifyElement(self, text): 
    if self.verifyText(text): 
     raise Exception("Element could not be deleted") 
    # no need to use "else: pass" 
+0

これは素晴らしいです。どうもありがとうございます – user7242550

関連する問題