我正在尝试使用selenium单击表中的链接。这是我的代码:
element = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.XPATH, "/html/body/table/tbody/tr/td/table/tbody/tr[11]/td[3]/a"))
)
element.click()
This is the anchor tag I am trying to click on
我尝试过使用其他方法来定位元素,比如通过链接文本、CSS选择器和类名,但似乎没有任何效果。它似乎无法定位锚元素
按链接文本:按.link_文本,“预订”
按CSS选择器:按.CSS_选择器,“body>;table>;tbody>;tr>;td>;table>;tbody>;tr:n个子项(11)>;td:n子项(3)>;a”
按类名:按类名“sidelinkbold”
This is how the website looks like
<html data-darkreader-mode="dynamic" data-darkreader-scheme="dark"><head><style class="darkreader darkreader--fallback" media="screen"></style><style class="darkreader darkreader--text" media="screen"></style><style class="darkreader darkreader--invert" media="screen">.jfk-bubble.gtx-bubble, .captcheck_answer_label > input + img, span#closed_text > img[src^="https://www.gstatic.com/images/branding/googlelogo"], span[data-href^="https://www.hcaptcha.com/"] > #icon, #bit-notification-bar-iframe, embed[type="application/pdf"] {
filter: invert(100%) hue-rotate(180deg) brightness(150%) contrast(60%) !important;
}</style><style class="darkreader darkreader--inline" media="screen">[data-darkreader-inline-bgcolor] {
background-color: var(--darkreader-inline-bgcolor) !important;
}
[data-darkreader-inline-bgimage] {
background-image: var(--darkreader-inline-bgimage) !important;
}
[data-darkreader-inline-border] {
border-color: var(--darkreader-inline-border) !important;
}
[data-darkreader-inline-border-bottom] {
border-bottom-color: var(--darkreader-inline-border-bottom) !important;
}
[data-darkreader-inline-border-left] {
border-left-color: var(--darkreader-inline-border-left) !important;
}
[data-darkreader-inline-border-right] {
border-right-color: var(--darkreader-inline-border-right) !important;
}
[data-darkreader-inline-border-top] {
border-top-color: var(--darkreader-inline-border-top) !important;
}
[data-darkreader-inline-boxshadow] {
box-shadow: var(--darkreader-inline-boxshadow) !important;
}
[data-darkreader-inline-color] {
color: var(--darkreader-inline-color) !important;
}
[data-darkreader-inline-fill] {
fill: var(--darkreader-inline-fill) !important;
}
[data-darkreader-inline-stroke] {
stroke: var(--darkreader-inline-stroke) !important;
}
[data-darkreader-inline-outline] {
outline-color: var(--darkreader-inline-outline) !important;
}
[data-darkreader-inline-stopcolor] {
stop-color: var(--darkreader-inline-stopcolor) !important;
}</style><style class="darkreader darkreader--variables" media="screen">:root {
--darkreader-neutral-background: #3a3c3d;
--darkreader-neutral-text: #ffffff;
--darkreader-selection-background: #2677d9;
--darkreader-selection-text: #ffffff;
}</style><style class="darkreader darkreader--root-vars" media="screen"></style><script class="darkreader darkreader--proxy">(function injectProxy() {
document.dispatchEvent(
new CustomEvent("__darkreader__inlineScriptsAllowed")
);
const addRuleDescriptor = Object.getOwnPropertyDescriptor(
CSSStyleSheet.prototype,
"addRule"
);
const insertRuleDescriptor = Object.getOwnPropertyDescriptor(
CSSStyleSheet.prototype,
"insertRule"
);
const deleteRuleDescriptor = Object.getOwnPropertyDescriptor(
CSSStyleSheet.prototype,
"deleteRule"
);
const removeRuleDescriptor = Object.getOwnPropertyDescriptor(
CSSStyleSheet.prototype,
"removeRule"
);
const shouldWrapDocStyleSheets =
location.hostname.endsWith("pushbullet.com") ||
location.hostname.endsWith("ilsole24ore.com") ||
location.hostname.endsWith("allegro.pl");
const documentStyleSheetsDescriptor = shouldWrapDocStyleSheets
? Object.getOwnPropertyDescriptor(Document.prototype, "styleSheets")
: null;
const cleanUp = () => {
Object.defineProperty(
CSSStyleSheet.prototype,
"addRule",
addRuleDescriptor
);
Object.defineProperty(
CSSStyleSheet.prototype,
"insertRule",
insertRuleDescriptor
);
Object.defineProperty(
CSSStyleSheet.prototype,
"deleteRule",
deleteRuleDescriptor
);
Object.defineProperty(
CSSStyleSheet.prototype,
"removeRule",
removeRuleDescriptor
);
document.removeEventListener("__darkreader__cleanUp", cleanUp);
document.removeEventListener(
"__darkreader__addUndefinedResolver",
addUndefinedResolver
);
if (shouldWrapDocStyleSheets) {
Object.defineProperty(
Document.prototype,
"styleSheets",
documentStyleSheetsDescriptor
);
}
};
const addUndefinedResolver = (e) => {
customElements.whenDefined(e.detail.tag).then(() => {
document.dispatchEvent(
new CustomEvent("__darkreader__isDefined", {
detail: {tag: e.detail.tag}
})
);
});
};
document.addEventListener("__darkreader__cleanUp", cleanUp);
document.addEventListener(
"__darkreader__addUndefinedResolver",
addUndefinedResolver
);
const updateSheetEvent = new Event("__darkreader__updateSheet");
function proxyAddRule(selector, style, index) {
addRuleDescriptor.value.call(this, selector, style, index);
if (
this.ownerNode &&
!this.ownerNode.classList.contains("darkreader")
) {
this.ownerNode.dispatchEvent(updateSheetEvent);
}
return -1;
}
function proxyInsertRule(rule, index) {
const returnValue = insertRuleDescriptor.value.call(
this,
rule,
index
);
if (
this.ownerNode &&
!this.ownerNode.classList.contains("darkreader")
) {
this.ownerNode.dispatchEvent(updateSheetEvent);
}
return returnValue;
}
function proxyDeleteRule(index) {
deleteRuleDescriptor.value.call(this, index);
if (
this.ownerNode &&
!this.ownerNode.classList.contains("darkreader")
) {
this.ownerNode.dispatchEvent(updateSheetEvent);
}
}
function proxyRemoveRule(index) {
removeRuleDescriptor.value.call(this, index);
if (
this.ownerNode &&
!this.ownerNode.classList.contains("darkreader")
) {
this.ownerNode.dispatchEvent(updateSheetEvent);
}
}
function proxyDocumentStyleSheets() {
const docSheets = documentStyleSheetsDescriptor.get.call(this);
const filtered = [...docSheets].filter((styleSheet) => {
return !styleSheet.ownerNode.classList.contains("darkreader");
});
return Object.setPrototypeOf(filtered, StyleSheetList.prototype);
}
Object.defineProperty(
CSSStyleSheet.prototype,
"addRule",
Object.assign({}, addRuleDescriptor, {value: proxyAddRule})
);
Object.defineProperty(
CSSStyleSheet.prototype,
"insertRule",
Object.assign({}, insertRuleDescriptor, {value: proxyInsertRule})
);
Object.defineProperty(
CSSStyleSheet.prototype,
"deleteRule",
Object.assign({}, deleteRuleDescriptor, {value: proxyDeleteRule})
);
Object.defineProperty(
CSSStyleSheet.prototype,
"removeRule",
Object.assign({}, removeRuleDescriptor, {value: proxyRemoveRule})
);
if (shouldWrapDocStyleSheets) {
Object.defineProperty(
Document.prototype,
"styleSheets",
Object.assign({}, documentStyleSheetsDescriptor, {
get: proxyDocumentStyleSheets
})
);
}
})()</script><style class="darkreader darkreader--user-agent" media="screen">input, textarea, select, button {
background-color: #3f4243;
}
html, body, input, textarea, select, button {
border-color: #9f9789;
color: #ffffff;
}
a {
color: #5cbeff;
}
table {
border-color: #7e8689;
}
::placeholder {
color: #e1dacf;
}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
background-color: #7f8626 !important;
color: #ffffff !important;
}
::-webkit-scrollbar {
background-color: #484b4c;
color: #dad2c7;
}
::-webkit-scrollbar-thumb {
background-color: #6f7477;
}
::-webkit-scrollbar-thumb:hover {
background-color: #82898d;
}
::-webkit-scrollbar-thumb:active {
background-color: #72787b;
}
::-webkit-scrollbar-corner {
background-color: #3f4243;
}
::selection {
background-color: #2677d9 !important;
color: #ffffff !important;
}
::-moz-selection {
background-color: #2677d9 !important;
color: #ffffff !important;
}</style><script language="JavaScript">
// Create account variable
var var_acct;
// --
var_acct = 925479
//document.write(var_acct);
</script>
<title>BBDC: Side Navigation</title>
<link rel="stylesheet" href="../css/content.css" type="text/css"><style class="darkreader darkreader--sync" media="screen"></style>
<script language="javascript" src="../admin/inc-script/common.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta name="darkreader" content="b042933e61e724920d01151a5694719f"><style class="darkreader darkreader--override" media="screen">.vimvixen-hint {
background-color: #a87e0f !important;
border-color: #ffdf3a !important;
color: #fffff8 !important;
}
::placeholder {
opacity: 0.5 !important;
}
a[href="https://coinmarketcap.com/"] > svg[width="94"][height="16"] > path {
fill: var(--darkreader-neutral-text) !important;
}
#edge-translate-panel-body {
color: var(--darkreader-neutral-text) !important;
}</style></head>
<body class="sidetxtbold" marginwidth="5" marginheight="5" topmargin="5" leftmargin="5" background="">
<!-- Begin Enrolment Process -->
<table width="150" border="0" cellspacing="0" cellpadding="0" bgcolor="#CCCCCC" data-darkreader-inline-bgcolor="" style="--darkreader-inline-bgcolor:#5e6264;">
<tbody><tr><!--<td><img src="../image/invis.gif" width="5" height="1"></td>-->
<td width="100%">
<table class="sidetxtbold" width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody><tr valign="top">
<td></td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-default.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Home'; return true" onmouseout="window.status=' '; return true">Home</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-3c-branchNvenues.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Branch and Venues'; return true" onmouseout="window.status=' '; return true">Branch and Venues</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2"><a href="../a-PayNow.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Home'; return true" onmouseout="window.status=' '; return true"><font color="red" data-darkreader-inline-color="" style="--darkreader-inline-color:#ff4242;">PayNow Topup</font></a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-ShowPPL.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='PPL Book'; return true" onmouseout="window.status=' '; return true">Practical Training HandBook</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<!--
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2"><A HREF="../b-updatePDLExpiryDate.asp" class="sidelinkbold" target="mainFrame" onMouseOver=" window.status='Home'; return true" onMouseOut="window.status=' '; return true">PDL Expiry Date Update</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
-->
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2" onmouseover="window.status='Practical Training'" onmouseout="window.status=' '">TP Simulator</td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td colspan="2"><a href="../b-selectTPDSModule.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Booking'; return true" onmouseout="window.status=' '; return true">Booking</a></td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td colspan="2"><a href="../b-tpds-LessonCancel.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Booking'; return true" onmouseout="window.status=' '; return true">Cancel</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<!-- ended 05112009 -->
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2" onmouseover="window.status='Theory Training'" onmouseout="window.status=' '">Theory Training</td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td width="100%"><a href="../b-selectTheory.asp?action=book" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Theory Training Booking'; return true" onmouseout="window.status=' '; return true">Booking</a></td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td class="sidetxtbold" width="100%"><a href="../b-selectTheory.asp?action=cancel" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Theory Training Cancel'; return true" onmouseout="window.status=' '; return true">Cancel</a></td>
</tr>
<tr>
<td class="sidetxtbold" colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2" onmouseover="window.status='Practical Test'" onmouseout="window.status=' '">Practical Test</td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<!--
<td width="100%"><a href="../b-3c-practicalTestBooking.asp?+3" class="sidelinkbold" target="mainFrame" onMouseOver=" window.status='Practical Test Booking'; return true" onMouseOut="window.status=' '; return true">Booking</a></td>
-->
<td class="sidetxtbold" width="100%"><a href="../s-bookTermMain.asp?fname=b%2D3c%2DSelectPracticalTestBooking%2Easp%3F%2B3" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Practical Test Booking'; return true" onmouseout="window.status=' '; return true">Booking</a></td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td width="100%"><a href="../b-3c-practicalTestCancel.asp?limit=pt" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Practical Test Cancel'; return true" onmouseout="window.status=' '; return true">Cancel</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td class="sidetxtbold" colspan="2" onmouseover="window.status='Theory Test'" onmouseout="window.status=' '">Theory Test</td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<!--
<td width="100%"><a href="../b-selectTest.asp?action=book" class="sidelinkbold" target="mainFrame" onMouseOver=" window.status='Theory Test Booking'; return true" onMouseOut="window.status=' '; return true">Booking</a></td>
-->
<td width="100%"><a href="../s-bookTermMain.asp?fname=b%2DselectTest%2Easp%3Faction%3Dbook" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Theory Test Booking'; return true" onmouseout="window.status=' '; return true">Booking</a></td>
</tr>
<tr valign="top">
<td> </td>
<td><img src="../image/site/icn-arrow-blue.gif"> </td>
<td width="100%"><a href="../b-selectTest.asp?action=cancel" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Theory Test Cancel'; return true" onmouseout="window.status=' '; return true">Cancel</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-trainSchedule&His.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Training & Test History'; return true" onmouseout="window.status=' '; return true">Training & Test History</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-bookTestStatement.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Booking Statement'; return true" onmouseout="window.status=' '; return true">Booking <br>Statement</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-accountTransactions.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Account Transaction'; return true" onmouseout="window.status=' '; return true">Account <br>Transaction</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-membershipRenewal.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Membership Renewal'; return true" onmouseout="window.status=' '; return true">Membership Renewal</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-transferFund.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Transfer Fund'; return true" onmouseout="window.status=' '; return true">Transfer Fund</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-changePassword.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Change Password'; return true" onmouseout="window.status=' '; return true">Change Password</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="../b-updateProfile.asp" class="sidelinkbold" target="mainFrame" onmouseover=" window.status='Update Profile'; return true" onmouseout="window.status=' '; return true">Update Profile</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr valign="top">
<td><img src="../image/site/icn-4dot.gif"> </td>
<td colspan="2"><a href="#" onclick="logout('../b-logoutleonnew.asp');" class="sidelinkbold" onmouseover=" window.status='Logout'; return true" onmouseout="window.status=' '; return true">Logout</a></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<!--<SCRIPT LANGUAGE=JAVASCRIPT SRC="../admin/inc-script/DisableRightMouseClick.js"></SCRIPT>-->
</body></html>
试试这个:
相关问题 更多 >
编程相关推荐