在 Selenium 中查找具有相应信息的元素 python
Find Elements with corresponding information in Selenium python
我正在设计一个机器人,它会根据简历数据库列出入围名单并向特定候选人发送邮件。一个拥有 collection 简历的网站,用户可以根据关键字和位置搜索相关简历。
使用 chrome 驱动程序和硒,我达到了输入关键字和位置网站显示一些结果的程度。 这是我遇到问题的地方
driver.find_elements_by(class_name, css_selector, name, tag_name, xpath) I tried all of them to retrieve the list of results and corresponding items like, name of candidate, email, id_of_that_resume and also need to handle if I already have sent the candidate invitation mail or not.
It will be a great favor if you answer with the code. Thanks in advance
this is the image corresponding to the inspected element alongwith the search result of resume against keyword
<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>
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)
我正在设计一个机器人,它会根据简历数据库列出入围名单并向特定候选人发送邮件。一个拥有 collection 简历的网站,用户可以根据关键字和位置搜索相关简历。 使用 chrome 驱动程序和硒,我达到了输入关键字和位置网站显示一些结果的程度。 这是我遇到问题的地方
driver.find_elements_by(class_name, css_selector, name, tag_name, xpath) I tried all of them to retrieve the list of results and corresponding items like, name of candidate, email, id_of_that_resume and also need to handle if I already have sent the candidate invitation mail or not. It will be a great favor if you answer with the code. Thanks in advance
this is the image corresponding to the inspected element alongwith the search result of resume against keyword
<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>
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)