python - bangla - সহজ ভাষায় পাইথন ৩ pdf download




পাইথন ব্যবহার করে সেলেনিয়াম ওয়েবড্রাইভারে WebElement এর HTML উত্স পান (9)

আমি সেলেনিয়াম ওয়েব ড্রাইভার চালানোর জন্য পাইথন বাইন্ডিং ব্যবহার করছি।

from selenium import webdriver
wd = webdriver.Firefox()

আমি জানি আমি এতটা উপকার পাচ্ছি ...

elem = wd.find_element_by_css_selector('#my-id')

এবং আমি জানি যে আমি পুরো পৃষ্ঠার উৎসটি পেতে পারি ...

wd.page_source

কিন্তু তবুও "উপাদান উৎস" পেতে কি আছে?

elem.source   # <-- returns the HTML as a string

পাইথনের জন্য সেলেনিয়াম ওয়েবড্রাইভার ডক্সগুলি মূলত অস্তিত্বহীন এবং আমি সেই কার্যকারিতা সক্ষম করার জন্য মনে হয় এমন কোডটিতে কিছু দেখতে পাচ্ছি না।

একটি উপাদান (এবং তার সন্তানদের) এইচটিএমএল অ্যাক্সেস করার সেরা উপায় কোন চিন্তা?


InnerHTML নির্বাচিত উপাদানটির ভিতরে উপাদানটি ফিরিয়ে দেবে এবং বাইরের HTML টি আপনার নির্বাচিত উপাদান সহ HTML এর ভিতরে ফিরবে

উদাহরণ: - এখন আপনার উপাদান নীচের হিসাবে অনুমান

<tr id="myRow"><td>A</td><td>B</td></tr>

অভ্যন্তরীণ HTML উপাদান আউটপুট

<td>A</td><td>B</td>

বাইরের HTML উপাদান আউটপুট

<tr id="myRow"><td>A</td><td>B</td></tr>

লাইভ উদাহরণ: -

http://www.java2s.com/Tutorials/JavascriptDemo/f/find_out_the_difference_between_innerhtml_and_outerhtml_in_javascript_example.htm

নীচে আপনি বিভিন্ন বাঁধাই হিসাবে প্রয়োজন যা সিনট্যাক্স পাবেন। প্রয়োজনীয় হিসাবে outerHTML innerHTML outerHTML innerHTML পরিবর্তন করুন।

পাইথন:

element.get_attribute('innerHTML')

জাভা:

elem.getAttribute("innerHTML");

যদি আপনি পুরো পৃষ্ঠাটি এইচটিএমএল কোড নীচের ব্যবহার করতে চান: -

driver.getPageSource();

আপনি উপাদানটির উত্স উৎস বা বর্তমান উপাদান সহ উৎসের জন্য outerHTML পেতে অভ্যন্তরীণ innerHTML পড়তে পারেন।

পাইথন:

element.get_attribute('innerHTML')

জাভা:

elem.getAttribute("innerHTML");

সি #:

element.GetAttribute("innerHTML");

রুবি:

element.attribute("innerHTML")

জাতীয়:

element.getAttribute('innerHTML');

পিএইচপি:

$elem.getAttribute('innerHTML');

পরীক্ষা এবং ChromeDriver সঙ্গে কাজ করে।


আশা করি এটি সাহায্য করবে: http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html

এখানে জাভা পদ্ধতি বর্ণনা করা হয়:

java.lang.String    getText() 

কিন্তু দুর্ভাগ্যবশত এটি পাইথন পাওয়া যায় না। সুতরাং আপনি জাভা থেকে পাইথন পদ্ধতির নামগুলি অনুবাদ করতে পারেন এবং সমগ্র পৃষ্ঠা উত্স ছাড়া বর্তমান পদ্ধতিগুলি ব্যবহার করে অন্য যুক্তি চেষ্টা করুন ...

যেমন

 my_id = elem[0].get_attribute('my-id')

এইচটিএমএল সোর্স কোড পাওয়ার জন্য একটি সোজা-এগিয়ে উপায় নেই। আপনি জেএস ব্যবহার করতে হবে। আমি পাইথন বাইন্ডিং সম্পর্কে খুব নিশ্চিত নই তবে আপনি সহজেই জাভাতে এটি করতে পারেন। আমি পাইথনের JavascriptExecutor ক্লাসের মতো কিছু হতে হবে নিশ্চিত নই।

 WebElement element = driver.findElement(By.id("foo"));
 String contents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;", element); 

পুরানো দেখায়, কিন্তু যাই হোক না কেন এখানে হতে দিন। আপনার ক্ষেত্রে এটি করার সঠিক উপায়:

elem = wd.find_element_by_css_selector('#my-id')
html = wd.execute_script("return arguments[0].innerHTML;", elem)

অথবা

html = elem.get_attribute('innerHTML')

উভয় আমার জন্য কাজ করছে (সেলেনিয়াম-সার্ভার-স্ট্যান্ডলোন-2.35.0)


বৈশিষ্ট্য পদ্ধতি ব্যবহার করে, আসলে, সহজ এবং আরও সরাসরি এগিয়ে।

সেলেনিয়াম এবং পেজবাইটের রত্নগুলির সাথে রুবি ব্যবহার করে, একটি নির্দিষ্ট উপাদানটির সাথে সম্পর্কিত শ্রেণীটি পেতে, লাইনটি উপাদান হবে। element.attribute(Class)

আপনি উপাদান অন্যান্য বাঁধা পেতে চেয়েছিলেন যদি একই ধারণা প্রযোজ্য। উদাহরণস্বরূপ, যদি আমি একটি উপাদান স্ট্রিং চেয়েছিলেন, element.attribute(String)


সেলেনিয়াম 2.53.0 সঙ্গে জাভা

driver.getPageSource();

সেলেনিয়াম পাইথন-এ এই স্ক্রিপ্টের সাথে আমরা সব HTML উত্স কোডটি পেতে পারি:

elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")

যদি আপনি এটি ফাইল এ সংরক্ষণ করতে চান:

f = open('c:/html_source_code.html', 'w')
f.write(source_code.encode('utf-8'))
f.close()

আমি একটি ফাইল সংরক্ষণ করার প্রস্তাব সুপারিশ কারণ সোর্স কোড খুব দীর্ঘ।


WebElement element = driver.findElement(By.id("foo"));
String contents = (String)((JavascriptExecutor)driver).executeScript("return      arguments[0].innerHTML;", element); 

এই কোড সত্যিই উৎস থেকে জাভাস্ক্রিপ্ট পেতে কাজ করে!





automated-tests