I am just new in python and encounter a problem in writing a test case.
Actually I've tried to use find_element with xpath in Appium but it reports timeout, then I use the coordinate method and try to click the button but still fail. It is strange that some of my button can be clicked.
Below is my code:
self.action2 = TouchAction(self.driver)
i = 0
while i < 10:
self.driver.swipe(x / 2, y * 9/10, x / 2, y * 5/100)
time.sleep(1)
i += 1
self.action2.move_to(700,2620).tap().perform()
I expect the cursor should move to the (x offset, y offset)but it failed.
Here is the log:
> self.user_login(username, password)
> self.action2.move_to(700,2620).tap().perform()
C:\learnPython\lib\site-packages\appium\webdriver\common\touch_action.py:115: in move_to
> self._add_action('moveTo', self._get_opts(el, x, y))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <appium.webdriver.common.touch_action.TouchAction object at 0x00000241EC651358>
element = 700, x = 2620, y = None, duration = None, pressure = None
> def _get_opts(self, element, x, y, duration=None, pressure=None):
opts = {}
if element is not None:
> opts['element'] = element.id
E AttributeError: 'int' object has no attribute 'id'
C:\\learnPython\\lib\\site-packages\\appium\\webdriver\\common\\touch_action.py:160: AttributeError
I looked at the source code of appium, I can see that move_to
gets 3 parameters https://github.com/appium/python-client/blob/master/appium/webdriver/common/touch_action.py#L104
So in your case you set the element
parameter to 700, thats why there is an error.
You can try either
self.action2.move_to(x=700,y=2620).tap().perform()
or
self.action2.move_to(None,700,2620).tap().perform()
Locating elements via coordinates is not the best way to proceed, you will not be able to run the same test on devices with other screen resolution, orientation, density, etc.
So I would recommend considering alternative approaches like:
automationName
capability
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.