-1

Here is my code:

     @return_to_home()
    def test_upvote(self):
        driver.find_element_by_id("com.ATG.World:id/fab").click()
        driver.implicitly_wait(timer)        
        driver.find_element_by_id("com.ATG.World:id/share_url_fab_clicked.").click()
        driver.find_element_by_id("com.ATG.World:id/tvSelectGroup").click()
        driver.find_element_by_id("com.ATG.World:id/tv_group_name").click()
        driver.find_element_by_id("com.ATG.World:id/ibCLose").click()
        driver.find_element_by_id("com.ATG.World:id/edtShareLink").send_keys("https://www.google.com")
        driver.implicitly_wait(timer)        
        driver.find_element_by_id("com.ATG.World:id/ivShareUrl").click()
        driver.find_element_by_id("com.ATG.World:id/tv_likes").is_enabled()        
        driver.find_element_by_id("com.ATG.World:id/tv_likes").click()
        verify_api("ws-upvote")        
        try:
            driver.find_element_by_id("com.ATG.World:id/post_details_back").click()  
            driver.implicitly_wait(timer)        
            driver.find_element_by_id("com.ATG.World:id/cross_fab_clicked").click()
        except:
            pass

    @return_to_home()
    def test_dislIke(self):
        driver.find_element_by_id("com.ATG.World:id/fab").click()
        driver.implicitly_wait(timer)        
        driver.find_element_by_id("com.ATG.World:id/share_url_fab_clicked.").click()
        driver.find_element_by_id("com.ATG.World:id/tvSelectGroup").click()
        driver.find_element_by_id("com.ATG.World:id/tv_group_name").click()
        driver.find_element_by_id("com.ATG.World:id/ibCLose").click()
        driver.find_element_by_id("com.ATG.World:id/edtShareLink").send_keys("https://www.google.com")
        driver.implicitly_wait(timer)        
        driver.find_element_by_id("com.ATG.World:id/ivShareUrl").click()
        driver.find_element_by_id("com.ATG.World:id/tv_unlikes").is_enabled()
        driver.find_element_by_id("com.ATG.World:id/tv_unlikes").click()      
        try:
            driver.find_element_by_id("com.ATG.World:id/post_details_back").click()            
            driver.find_element_by_id("com.ATG.World:id/touch_outside").click()            
            driver.find_element_by_id("com.ATG.World:id/cross_fab_clicked").click()
        except:
            pass

Same code is working but dislike method is not working Even after commenting unlike line

Error logs are

ERROR: test_dislIke (__main__.shareurl)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\Vaishali\Desktop\atg_android_automation\Common\atg_common.py", line 48, in wrapper
    func = orig_func(self, *args, **kwargs)
  File "C:\Users\Vaishali\Desktop\atg_android_automation\TestSuite\ShareUrl.py", line 148, in test_dislIke
    driver.find_element_by_id("com.ATG.World:id/fab").click()
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\appium\webdriver\webdriver.py", line 284, in find_element
    'value': value})['value']
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\appium\webdriver\errorhandler.py", line 29, in check_response
    raise wde
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\appium\webdriver\errorhandler.py", line 24, in check_response
    super(MobileErrorHandler, self).check_response(response)
  File "C:\Users\Vaishali\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: An element could not be located on the page using the given search parameters.
supputuri
  • 13,644
  • 2
  • 21
  • 39

1 Answers1

0

First of all, when you use find_element_by_id method selenium will convert the value to css by using [id="%s"] (%s is the value you provided).

enter image description here

Now that the com.ATG.World:id/fab id that you provided in the error line is not a valid css. You have to mask all the special chars with \ as shown below.

driver.find_element_by_id("com\.ATG\.World\:id\/fab").click()

Below is the evidence how it works. I would prefer using find_element_by_css_selector and provide the complete css as shown in either option 1 or 2.

Option1:

enter image description here

Option 2:

enter image description here

supputuri
  • 13,644
  • 2
  • 21
  • 39