آیا اولیه سازی شی تنها تفاوت بین POM و کارخانه صفحه در سلنیوم است؟


پاسخ 1:

اطلاعات زیر از کلاس PageDact JavaDoc از روش fillElements () آمده است:

Public static T initElements (درایور WebDriver ، صفحه کلاسClassToProxy) page صفحه T = instantiatePage (درایور ، صفحهClassToProxy)؛ ابتکارها (درایور ، صفحه)؛ برگشت؛ }
  • نمونه ای از کلاس مشخص شده را فوری کنید و یک پروکسی تأخیر برای هر WebElement و هر لیست تعریف کنید ، به شرط اینکه نام زمینه نیز "ID" یا "نام" عنصر HTML باشد.

این بدان معنی است که برای کلاس:

صفحه کلاس عمومی Web WebElement خصوصی ارسال کنید؛ }

عنصری وجود خواهد داشت که با بیان xpath می توان یافت

// * [@ id = 'ارسال'] "یا // * [@ name = 'ارسال']
  • به طور پیش فرض ، هر بار که متدی فراخوانی می شود ، مورد یا لیست جستجو می شود. برای تغییر این رفتار ، به سادگی با استفاده از یادداشت CacheLookup ، زمینه را تفسیر کنید. برای تغییر موقعیت عنصر ، از یادداشت FindBy استفاده کنید.

-------------------------------

بنابراین اگر از PageFective استفاده می کنید ،

  1. متغیرهای WebElement یا لیست در کلاس شیء صفحه خصوصی اعلام می شوند. اگر متغیر WebElement با همان نام WebElement ID یا ویژگی نام مشابه باشد ، نیازی به تعیین یاب برای عنصر نیست. در غیر این صورت ، یاب عنصر با استفاده از یک روش FindBy-AnnotationinitElements () مشخص می شود. یک پروکسی تنبل برای هر عنصر وب از کلاس شیء صفحه تنظیم می کند. این پروکسی عنصر وب را به مکان یاب خود اختصاص می دهد. با این حال ، هنگام استفاده از این عنصر هنوز عنصر وب جستجو نمی شود (با فراخوانی روش هایی مانند کلیک () ، getText () ، isEnabled () و غیره). موارد زیر اتفاق می افتد: یاب در طی صفحه صفحه به عنصر وب اختصاص داده می شود. این عنصر در گنبد مرورگر جستجو می شود. وقتی مورد یافت شد کد با آن تعامل دارد. اگر نمی خواهید هر بار که از آن در گنبد مرورگر استفاده می شود ، مورد جستجو شود ، می توان از یادداشت CacheLookup استفاده کرد. در این حالت ، عنصر پس از یافتن اولین بار در آن ذخیره می شود

این فقط داستان کوتاه صفحه کارخانه است.

خواندن کد و فهمیدن چگونگی عملکرد بسیار مفید است.

این برای من یک معجزه بود ، زیرا برای اینکه بفهمم کد چه کاری انجام می داد ، من باید چیزهایی را که نمی دانستم به خوبی می آموختم ، مانند:

  • کلاسهای آغازین کلاهبرداری عمومی

برای فهمیدن این زمان کمی طول کشید ، اما بسیار خوشحالم که این کار را کردم.

موفق باشید

آیا از این مقاله لذت بردید و دوست دارید اطلاعات بیشتری بخوانید؟

وبلاگ جدید Quora را بررسی کنید:

نکات و ترفندهای مربوط به سلنیوم


پاسخ 2:

در POM (صفحه شیء مدل) برای هر صفحه / URL جدید یک کلاس جدید ایجاد می کنید و تمام روش های شناسایی عنصر خود را وارد می کنید.

Page Factory یادداشتی در سلنیوم است که به کلاس می دهید. بنابراین اگر یک کلاس را به عنوان یک کارخانه صفحه تعریف می کنید ، تمام عناصر شما در کلاس بارگیری می شوند در حالی که یکی از عناصر موجود در کلاس نامیده می شود. ت

PS - اگر شما تعداد عناصر را در یک کلاس دارید و فقط از یک مورد استفاده می کنید ، به نظر می رسد کارخانه واقعاً کار بد است.