XPath برای پیمایش (Navigate) میان المان های فایل XML به کار گرفته می شود و از سوی دیگر می توانیم آن را برای دسترسی به تگ های صفحه وب کمک بگیریم. XPath را می توانیم درون زبان های برنامه نویسی مانند پایتون، سی شارپ، جاوا، پی اچ پی و غیره به کار ببریم. همانطور که در ادامه آموزش داده ایم، می توانیم رشته کوئری XPath را نیز درون مرورگر خود و با کمک گرفتن از ویژگی مانند Inspect در Chrome ایجاد کنیم.

در زبان پایتون کتابخانه هیا متفاوتی وجود دارند که بوسیله آنها می توانیم کوئری های XPath را اجرا کنیم. شاید مهمترین این کتابخانه ها، libxml2 یا lxml باشند ولی همانطور که در این مطلب آموزش داده ایم، می توانیم کوئری های XPath را بوسیله متد ()find_element_by_xpath نیز اجرا کنیم. همچنین کتابخانه Scrapy نیز قابلیت اجرای XPath را نیز دارد.

با توجه به متد ()find_element_by_xpath می توانیم بگوییم که در کنار ویژگی هایی مانند id و class و name و یا حتی نام لینک (متد ()find_element_by_link_text)، می توانیم بوسیله رشته XPath، به یک تگ دسترسی پیدا کنیم. در شکل زیر نحو (Syntax) رشته XPath برای دسترسی به تگ جاری (Current Tag)، نشان داده شده است. همانطور که می بینید برای گزینش تگ جاری باید از // کمک گرفت و برای مشخص کردن یک خصوصیت باید ابتدای آن کاراکتر @ آورده شود. NodeName نیز می تواند یک تگ یا یک درختواره از تگ ها باشد.

ایجاد رشته XPath بوسیله مرورگر

در این بخش می خواهیم نشان دهیم که می توانیم بوسیله ویژگی های مرورگر، مانند Inspect در مرورگر Chrome، رشته XPath را به صورت خودکار ایجاد و سپس آنرا درون متد ()find_element_by_xpath به کار ببریم. در شکل زیر باید نخست روی تگ کلیک راست و سپس از بخش Copy، گزینه Copy XPath را برگزنید. با این کار رشته XPath ایجاد و آماده به کار گیری در Selenium می شود.

در شکل زیر می خواهیم به نخستین تگ li درون چهارمین تگ ul دسترسی داشته باشیم، پس برابر با شکل بالا باید Copy XPath را کلیک کرده تا رشته ای همانند کد زیر ایجاد شود. رشته را باید از پایان به شروع بخوانید به طوری که می بینید نخستین تگ li درون جهارمین تگ ul، درون نخستین تگ article و غیره گزینش شده است. توجه کنید ساختار رشته XPath همانند ساختار درختی میان تگ های درون یک صفحه وب است، پس به طور نمونه چندین تگ aritcle وجود دارد که درون آن چندین ul و درون هر ul نیز چنیدین li وجود دارد.

در شکل زیر که چگونگی ایجاد رشته XPath در فایرفاکس نشان داده شده است و همانطور که می بینید می خواهیم به تگ input با شناسه user-message دسترسی داشته باشیم، پس باید پس از دو کاراکتر //، نام تگ، یعنی input و سپس درون براکت های باز و بسته و پس از کاراکتر @، نام خصوصیت، یعنی id و سپس مقدار آن، یعنی user-message، پس کاراکتر = قرار گیرد. (منبع شکل)

مسیرهای مطلق و نسبی

رشته های XPath را می توان به دو شیوه مسیر مطلق (Absolute XPath) و مسیر نسبی (Relative XPath) نوشت. مسیر مطلق، مسیری سر راست (Direct) به تگ درون صفحه وب است. شکل زیر نمونه ای از XPath با مسیر مطلق را نشان می دهد. همانطور که می بینید، مسیر مطلق با یک تک / (Single Slash) شروع می شود.

ولی مسیرهای نسبی، با دو // شروع می شوند و مسیری کوتاه تر به تگ هستند. در نمونه هایی که در بالا گفته شده، همگی از مسیرهای نسبی هستند، زیرا مسیر کوتاه تر به تگ و با دو // شروع می شوند.