Найти элементы с соответствующей информацией в Selenium python - PullRequest
0 голосов
/ 07 февраля 2020

Я создаю бота, который будет отбирать и отправлять почту конкретным c кандидатам на основе базы данных резюме. Веб-сайт с коллекцией резюме и пользователь может искать связанные резюме на основе ключевых слов и местоположения. С chrome Драйвером и селеном я дошел до того, что при вводе ключевого слова и сайта местоположения показываются некоторые результаты. Здесь у меня проблема

driver.find_elements_by (class_name, css_selector, name, tag_name, xpath) Я пытался все из них, чтобы получить список результатов и соответствующие элементы, такие как, имя кандидата, адрес электронной почты, id_of_that_resume, а также необходимо обработать, если я уже отправил письмо-приглашение кандидата или нет. Будет очень приятно, если вы ответите с кодом. Заранее спасибо

Это изображение соответствует проверяемому элементу вместе с результатом поиска резюме по ключевому слову

<div class="col-xs-12 tuple ng-scope" data-ng-class="resumeCtrl.GetCssClass(item.Status)" ng-repeat="item in resumeCtrl.items | limitTo: resumeCtrl.limitToValue track by $index" ng-show="resumeCtrl.items.length > 0" style="">
                            <div class="checkbox" style="margin-top: 57px;">
                                <input id="chk131545341" name="resumerowcheckbox" type="checkbox" onchange="global.isChecked(this);" ng-click="resumeCtrl.isAllChecked()" ng-checked="" data-itemid="131545341" data-isviewed="false" data-itemtitle="Dimple AXXXXXXX" data-itemcity="" data-statustext="" data-itemstatuscd="" data-documentid="131545341" data-firstname="Dimple">
                                <label for="chk131545341"></label>
                            </div>
                            <div class="tuple-body mob-qs-wrap">
                                <div class="col-xs-2 quick-section text-right pull-right visible-xs"><a class="quicklinks pull-right"><i class="fa fa-ellipsis-v fa-2x"></i></a></div>
                                <div class="tuple-col col-xs-10 col-sm-6 info">
                                    <h3 data-isviewed="false" class="tuple-title">
                                        <span class="link ng-binding" ng-click="resumeCtrl.ShowResume(item,resumeCtrl.FromRange+$index);">Dimple A</span>
                                    </h3>
                                    <address class="h5 text-dark-gray">
                                        <span data-ng-show="resumeCtrl.showLocationInfo(item)" class="ng-binding ng-hide">,   </span>
                                        <span data-ng-show="resumeCtrl.showMilesInfo(item)" class="ng-binding ng-hide"> -  miles</span>
                                    </address>
                                    <!-- ngIf: resumeCtrl.showExperienceInfo(item.Experience) --><ul class="list-info text-dark-gray h5 ng-scope" data-ng-if="resumeCtrl.showExperienceInfo(item.Experience)">
                                        <li class="ng-binding">Last Active: 01/07/2020</li>
                                        <li class="ng-binding">Work Experience: 20 years 1 month</li>
                                    </ul><!-- end ngIf: resumeCtrl.showExperienceInfo(item.Experience) -->
                                    <!-- ngIf: !resumeCtrl.showExperienceInfo(item.Experience) -->
                                    <p class="mt15 text-dark-gray fs12 hidden-xs p0 ng-binding" data-ng-bind-html="item.HighlightingSnippet | to_trusted">Enterprise Applications and Database Development using , <strong>Python</strong>... . Hands on experience in data processing automation using <strong>python</strong> .... patterns . Web development...</p>
                                </div>
                                <div class="tuple-col col-xs-10 col-sm-4 hidden-xs">
                                    <a data-ng-click="resumeCtrl.ShowResume(item,resumeCtrl.FromRange+$index)" data-preview="preview" class="btn btn-primary preview">Reviewed</a>
                                    <span class="h5  ng-hide" data-ng-show="item.IsViewed">Last viewed </span>
                                </div>
                                    <div class="tuple-col col-xs-10 col-sm-2 hidden-xs quick-section mob-quick-section">
                                        <div class="action-toggle">
                                            <button class="btn btn-default bg-default" data-toggle="dropdown"><span class="text">Actions<i class="caret"></i></span></button>
                                            <ul class="action-menu dropdown-menu">
                                                <!-- Start Forcefull link add-on for mobile view, should REFRAIN taking this approach -->
                                                <li class="hide">
                                                    <a data-ng-click="resumeCtrl.ShowResume(item);" data-preview="preview" class="link quicklinks ng-binding" data-maction="PRVW">
                                                        <span class="fa-icon-width"><i class="fa fa-file-text-o"></i></span>Preview Resume
                                                        <span class="h5 text-gray ml25 mb10  lht1 ng-hide" data-ng-show="item.IsViewed">Last viewed </span>
                                                    </a>
                                                </li>
                                                <!-- End Forcefull link add-on for mobile view, should REFRAIN taking this approach -->
                                                <li><a class="link quicklinks" data-maction="INVT" data-ng-click="resumeCtrl.InviteToApply(item, 'Rimeiko Lyles');"><span class="fa-icon-width"><i class="fa fa-envelope"></i></span><span class="quick-text">Invite to Apply</span></a></li>
                                                <li><a class="link quicklinks" data-maction="ADCN" data-ng-click="resumeCtrl.AddCandidateToJob(item, 'Rimeiko Lyles');"><span class="fa-icon-width"><i class="fa fa-user-plus"></i></span><span class="quick-text">Add Candidate to Job</span></a></li>
                                                    <li><a class="link quicklinks" data-maction="DNLP" data-ng-click="resumeCtrl.DownloadResume(item, 'pdf')"><span class="fa-icon-width"><i class="fa fa-file-pdf-o"></i></span><span class="quick-text">Download to PDF</span></a></li>
                                                        <li><a class="link quicklinks" data-maction="DNLD" data-ng-click="resumeCtrl.DownloadResume(item, 'docx')"><span class="fa-icon-width"><i class="fa fa-file-word-o"></i></span><span class="quick-text">Download to MS Word</span></a></li>
                                            </ul>
                                        </div>
                                    </div>
                            </div>
                        </div>

1 Ответ

1 голос
/ 07 февраля 2020
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

#assuming you defined driver already.

some_elements = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located(
            (By.XPATH, "//div[@data-ng-class='resumeCtrl.GetCssClass(item.Status)']")))



for element in some_elements:
    print("element.text:", element.text)

Или


same_elements = driver.find_elements_by_xpath("//div[@data-ng-class='resumeCtrl.GetCssClass(item.Status)']")

for element in same_elements:
    print("same_element.text:", element.text)
...