python - 无法使用带有 selenium 的 python3 在表中找到链接

标签 python css selenium xpath

大家好,我正在使用 Python 3.0,我正在尝试点击表格中的链接。

目前找不到链接,所以无法点击。

下面是选中元素的html

这里的道歉是代码的一个更好的例子......

<div id="divMyActivities2" originalheight="125px" style="overflow-y:auto;top:0px;left:0px;width:451px;height:125px;">
        <table id="tblMyActivities" class="podborder" border="0" cellpadding="3" cellspacing="0" style="overflow-y: auto; table-layout: fixed; border: 1px solid #CCCCCC; border-top: none; width: 100%; border-top-left-radius: 0px; border-top-right-radius: 0px">
<tr>
    <td class="customheader" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 100%; color: #004a78; background: #e6ebf1 !important; font-size: 11px;" align="left">&nbsp;&nbsp;<b>Type of Activity</b>
                </td>
    <td class="customheader" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 50px; color: #004a78; background: #e6ebf1 !important; font-size: 11px;" align="center"><b>Past Due</b>
                </td>
    <td class="customheader" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 60px; color: #004a78; background: #e6ebf1 !important; font-size: 11px;" align="center"><b>This Week</b>
                </td>
    <td class="customheader" style="border-bottom: 1px solid #CCCCCC; font-size: 11px; width: 50px; color: #004a78; background: #e6ebf1 !important;" align="center"><b>All</b>
                </td>
</tr>
<tr class="blacktext">
    <td style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; text-align: left; width: 100%;">&nbsp;
                    <img src="../../common/images/cwtoday_bullet.gif" border="0" />
                    <label onclick="pageNav('crmSales');" class="tablelink">CRM / Sales Activities</label>
                </td>
    <td id="tdSalesPastDue" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 50px;" align="center">&nbsp;</td>
    <td id="tdSalesThisWeek" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 60px;" align="center">&nbsp;</td>
    <td id="tdSalesAll" class="tabletext" style="border-bottom: 1px solid #CCCCCC; width: 50px;" align="center">&nbsp;
                </td>
</tr>
<tr id="trProjAct" class="blacktext">
    <td style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; text-align: left; width: 100%; background: #f6f6f6;">&nbsp
                    <img src="../../common/images/cwtoday_bullet.gif" border="0" />
                    <label onclick="pageNav('projectActs');" class="tablelink">Project Tickets</label>
                </td>
    <td id="tdPrjActPastDue" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 50px; background: #f6f6f6;" align="center">&nbsp;</td>
    <td id="tdPrjActThisWeek" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 60px; background: #f6f6f6;" align="center">&nbsp;</td>
    <td id="tdPrjActAll" class="tabletext" style="border-bottom: 1px solid #CCCCCC; width: 50px; background: #f6f6f6;" align="center">&nbsp;</td>
</tr>
<tr class="blacktext">
    <td style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; text-align: left; width: 100%;">&nbsp;
                    <img src="../../common/images/cwtoday_bullet.gif" border="0" />
                    <label onclick="pageNav('projectIssues');" class="tablelink">Project Issues</label>
                </td>
    <td id="tdPrjIssPastDue" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 50px;" align="center">&nbsp;</td>
    <td id="tdPrjIssThisWeek" class="tabletext" style="border-right: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC; width: 60px;" align="center">&nbsp;</td>
    <td id="tdPrjIssAll" class="tabletext" style="border-bottom: 1px solid #CCCCCC; width: 50px;" align="center">&nbsp;</td>
</tr>
<tr class="blacktext">
    <td style="border-right: 1px solid #CCCCCC; border-bottom-left-radius: 6px; text-align: left; width: 100%; background: #f6f6f6;">&nbsp;
                    <img src="../../common/images/cwtoday_bullet.gif" border="0" />
                    <label onclick="pageNav('serviceRequests');" class="tablelink">Service Tickets</label>
                </td>
    <td id="tdSRPastDue" class="tabletext" style="border-right: 1px solid #CCCCCC; width: 50px; background: #f6f6f6;" align="center">&nbsp;</td>
    <td id="tdSRThisWeek" class="tabletext" style="border-right: 1px solid #CCCCCC; width: 60px; background: #f6f6f6;" align="center">&nbsp;</td>
    <td id="tdSRAll" class="tabletext" align="center" style="width: 50px; background: #f6f6f6; border-bottom-right-radius: 6px;">&nbsp;</td>
</tr>

我正在尝试选择这个元素:

<label onclick="pageNav('serviceRequests');" class="tablelink">Service Tickets</label>

我尝试过的......

尝试过:

driver.find_element_by_partial_link_text('Tickets').click()

异常:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"partial link text","selector":"Tickets"

尝试过:

driver.find_element_by_link_text('Service Tickets').click()

异常:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Service Tickets"

尝试过

driver.find_elements_by_css_selector(".tablelink")

结果:

produces an empty list "[]"

尝试过:

driver.find_element_by_tag_name("label")

异常:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"tag name","selector":"label"}

我找到了这个 URL,但我无法更改代码:Find and click an item from 'onclick' partial value

  • 疯狂的猜测我厌倦了从链接解码

尝试过:

driver.find_element_by_css_selector("tablelink[onclick*='Service Tickets']")

异常:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"tablelink[onclick*='Service Tickets']"}

任何帮助都会很棒,在此先感谢。

最佳答案

Apolgos 仍在学习这一切。

我必须切换 Iframe 然后才能通过 XPATH 找到代码。

我不想一次粘贴整个代码,因为要深入研究的页面很长。

driver.switch_to_frame(driver.find_element_by_class_name("gwt-Frame"))
driver.find_element_by_xpath("//label[contains(.,'Service Tickets')]").click()

感谢您的宝贵时间。

关于python - 无法使用带有 selenium 的 python3 在表中找到链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40480063/

相关文章:

python - 如何正确使用 Selenium 抓取 Twitter 用户名?

html - 使用 Selenium 查找具有流体 xpaths 的元素

python - 将 Pandas 列转换为日期时间

python - 复制嵌套列表,然后仅更新新列表中的值

jquery - Bootstrap 词缀插件有时会在页面底部失败

javascript - Fancybox - 无法在 Fancybox 窗口中打开图像

java - 单击具有数组或列表中的值的按钮

python - 在元组列表中找到一个精确的元组匹配并返回它的索引

python - 使用 Flask WTF-Forms 手动生成 CSRF token

CSS 固定 div。避免不必要的重叠