我在python / selenium中编写测试来测试Chrome中的响应式网站,并启用了设备模式。中间有一个传单幻灯片的页面和一个缩略图容器,底部有一个传单中的所有页面的图像。传单幻灯片始终显示从缩略图容器中选择的页面。
首次加载传单页面时,在移动网络上,缩略图容器显示右侧有一个小的折叠按钮;但是,在设备上(使用Chrome上的用户代理设置进行模拟),缩略图容器会显示折叠并显示“展开”按钮。
要在设备上滚动到不同的传单页面,有两个选项:
选项1.打开缩略图栏&点击任意页面的传单图片
步骤:如果我手动点击展开按钮,则会显示缩略图栏。但是,有了selenium脚本, 要打开缩略图栏2,应该触发事件 - '点击'在展开按钮上应弹出缩略图栏并点击“'在展开按钮上应更改将其更改为折叠按钮&也可以将按钮的位置更改为缩略图栏。
现在问题是'点击'在TouchActions中提供并点击'在ActionChains&我不知道如何在同一个对象上按顺序实现这两个事件。你能帮忙吗?
以下是我尝试的所有内容,但没有任何作用:
from selenium.webdriver.common.touch_actions import TouchActions
from selenium.webdriver.common.action_chains import ActionChains
touch_actions = TouchActions(self._driver) # or, self.browser
action_chain= ActionChains(self._driver) # or, self.browser
el = self.wait_for_element_to_be_present(By.CSS_SELECTOR, <expand button>)
touch_actions.tap(el).release(50,50)
action_chain.context_click(el).send_keys(Keys.LEFT).perform() # works as right click
另外,只需执行self.click(element)即可将展开按钮转换为折叠按钮&amp;在不显示缩略图栏的情况下更改其位置。
选项2:在传单幻灯片中滑动: 要在传单页面上实现滑动以访问不同的幻灯片,我尝试了3种方法,但它也不起作用:
fs= self.wait_for_element_to_be_present(By.CSS_SELECTOR, <flyer slide>)
touch_actions.flick_element(fs, 0, -100, 1).perform()
action_chain.click_and_hold(fs).move_to_element_with_offset(fs,-100,0).release().perform()
action_chain.click_and_hold(fs).move_by_offset(-100,0).perform()
有人可以指导 - 我在这里缺少什么&amp;如何实现两种方式来访问不同的传单页面?谢谢,