title: Selenium Python 2 find element by name and value?
body: <p>I have been trying to locate an element on a web page, this element has the same name as other elements and no id. It does have a different value, so I would like to find the element by the name AND the Value. </p>
  
  <p>in my web page I have a search button:</p>
  
  <pre><code>&lt;input name="action" value=" Search " style=" border-style2;  font-size: 11;
                       font-family: arial, helvetica" border="0" type="submit"&gt;
  </code></pre>
  
  <p>I can't use name because I have another element with the same name and type:</p>
  
  <pre><code>&lt;input name="action" value=" Go " onclick=" return custRange('cust', 'd_custno');"
                       style=" border-style2;  font-size: 11; font-family: arial, helvetica"
                       border="0" type="submit"&gt;
  </code></pre>
  
  <p>I therefore tried to use xpath, I started by using the xpath checker to return the xpath which returned:</p>
  
  <pre><code>/x:html/x:body/x:center/x:table/x:tbody/x:tr/x:td/x:center/x:center[1]/x:table[2]/x:tbody/x:tr/x:td[1]/x:table[3]/x:tbody/x:tr[5]/x:td[2]/x:input[2]
  </code></pre>
  
  <p>Again pretty new to this but I'm assuming the "x:" shouldn't be in the path so I removed this and tried to find the element with the following:</p>
  
  <pre><code>search = driver.find_element_by_xpath("//center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]")
  search.clickAndWait()
  </code></pre>
  
  <p>which resulted in:</p>
  
  <pre><code>selenium.common.exceptions.NoSuchElementException: Message: 'Unable to find element with xpath == //center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]'
  </code></pre>
  
  <p>So really I have 2 questions it would be great if someone could help with:</p>
  
  <ol>
  <li>is there a way to identify an element by name and value?</li>
  <li>obviously I'm missing something with xpath, is the way I'm trying to use xpath incorrect? if so could you suggest what I'm doing wrong?</li>
  </ol>
  
  <p>Any help greatly appreciated. </p>
  
  <p>for completeness my unittest code is is as follows:</p>
  
  <pre><code>import unittest
  from selenium import webdriver
  from selenium.webdriver.common.keys import Keys
  
  class umLoginTest(unittest.TestCase):
  
      def setUp(self):
          self.driver = webdriver.Ie()
          self.driver.implicitly_wait(3)
  
      def test_login_to_um(self):
          driver = self.driver
          result_file = open("umLoginTest_result.txt", "w")
          driver.get("http://ps-iweb/UserManage/Home")
          self.assertIn("Welcome", driver.title)
          elem = driver.find_element_by_name("userLogin")
          elem.send_keys("pstevenson")
          password = driver.find_element_by_name("sec_password")
          password.send_keys("etc")
          password.send_keys(Keys.RETURN)
          test1 = driver.title
          result_file.write(str(test1))
          select = driver.find_element_by_name("conn_marketid")
          for option in select.find_elements_by_tag_name('option'):
              if option.text == 'Int Rate Swaps':
                  option.click()
          search = driver.find_element_by_xpath("//center[1]/table[2]/tbody/tr/td[1]/table[3]/tbody/tr[5]/td[2]/input[2]")
          search.clickAndWait()
  
          result_file.close()
  
  if __name__ == "__main__":
      unittest.main()
  </code></pre>