perf: 限制商品页补采最多滑动6次 (#161)
This commit is contained in:
@@ -794,7 +794,7 @@ class PddCollectService:
|
||||
page_timeout: float = 30.0,
|
||||
spec_panel_timeout: float = 10.0,
|
||||
overall_timeout: float = 600.0,
|
||||
max_goods_page_swipes: int = 12,
|
||||
max_goods_page_swipes: int = 6,
|
||||
max_spec_swipes: int = 12,
|
||||
max_sku_count: int = 200,
|
||||
color_poll_interval: float = 0.1,
|
||||
|
||||
@@ -1351,6 +1351,35 @@ class PddCollectParserTest(unittest.TestCase):
|
||||
self.assertTrue(device.clicks)
|
||||
self.assertEqual(device.swipe_panel_states[:2], [False, False])
|
||||
|
||||
def test_goods_metadata_default_swipe_limit_is_six(self):
|
||||
pages = [
|
||||
f"""<hierarchy>
|
||||
<node class="androidx.viewpager.widget.ViewPager"
|
||||
content-desc="测试商品标题第{index}屏内容"
|
||||
bounds="[0,100][1080,500]" />
|
||||
<node class="android.widget.TextView" text="已拼12000件"
|
||||
bounds="[30,600][300,660]" />
|
||||
<node class="androidx.recyclerview.widget.RecyclerView"
|
||||
scrollable="true" bounds="[0,0][1080,1800]" />
|
||||
</hierarchy>"""
|
||||
for index in range(7)
|
||||
]
|
||||
device = GoodsMetadataScrollDevice(pages, self.spec_xml)
|
||||
device.opened_url = "https://mobile.yangkeduo.com/goods.html?goods_id=123"
|
||||
service = PddCollectService(
|
||||
PddDeviceService(lambda _serial: device),
|
||||
"USB-001",
|
||||
"client-001",
|
||||
sleeper=lambda _seconds: None,
|
||||
)
|
||||
|
||||
result = service._collect_goods_details(device)
|
||||
|
||||
self.assertIsNone(result.shop_name)
|
||||
self.assertIsNone(result.reviews.raw)
|
||||
self.assertEqual(6, len(device.swipes))
|
||||
self.assertEqual(6, device.page_index)
|
||||
|
||||
def test_cancel_during_goods_page_scroll_stops_before_spec_panel(self):
|
||||
incomplete_home = self.home_xml.replace(
|
||||
'<node class="android.widget.TextView" text="2356条评价" '
|
||||
|
||||
Reference in New Issue
Block a user