python-3.x - যবহ - পাইথন দিয়ে প্রোগ্রামিং শেখা



অবৈধ নির্বাচক: ওয়েবদ্রিভার এবং পাইথন সহ find_element_by_class_name ব্যবহার করে যৌগিক শ্রেণির নাম অনুমোদিত নয় (2)

here এবং এখানে খুব প্রস্তাব হিসাবে CSS নির্বাচক ব্যবহার করুন

recived_msg = driver.find_element_by_css_selector('XELVh.selectable-text.invisible-space.copyable-text')

আমি WebWhatsapp এর মাধ্যমে চ্যাট থেকে আমার বার্তাগুলির একটি মুদ্রণ করার চেষ্টা করছি।

আমি কনসোল ট্যাব থেকে জাভাস্ক্রিপ্টের মাধ্যমে এটি করতে সক্ষম হয়েছিলাম আমি এইভাবে এটি করেছি

recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content

সমস্যা হল আমি পাইথন এ একই জিনিস করার চেষ্টা করেছি কিন্তু এটা আমার জন্য কাজ করে না ..

আমি চেষ্টা করেছি কি heres:

from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason

আমার ত্রুটি যে আমি পেয়ে যাচ্ছি: বার্তা: অবৈধ নির্বাচক: যৌগিক শ্রেণীর নাম অনুমতি নেই

আমি জাভাস্ক্রিপ্ট জন্য নতুন নতুন তাই ভুল বোঝার জন্য দুঃখিত এবং আপনার সাহায্যের জন্য আপনাকে ধন্যবাদ! :)


selenium.webdriver.common.by বাস্তবায়নের ডকুমেন্টেশন অনুসারে:

class selenium.webdriver.common.by.By
    Set of supported locator strategies.

    CLASS_NAME = 'class name'

সুতরাং,

  • find_element_by_class_name() ব্যবহার করে আপনি একাধিক শ্রেণীর নাম পাস করতে পারবেন না।
  • উপরন্তু, আপনি চ্যাটগুলির একটি অ্যারে ফেরত দিতে চান, তাই find_element* পরিবর্তে আপনাকে find_elements* ব্যবহার করতে হবে find_elements*

সমাধান

বিকল্প হিসাবে আপনি নিম্নোক্ত লোকেটার কৌশলগুলি ব্যবহার করতে পারেন:

  • CSS_SELECTOR :

    recived_msg = driver.find_elements_by_css_selector(".XELVh.selectable-text.invisible-space.copyable-text")
  • XPATH :

    recived_msg = driver.find_elements_by_xpath("//*[@class='XELVh selectable-text invisible-space copyable-text']")




webdriver