我试图点击这个按钮,但这个按钮实际上是一个没有ID的图像。我尝试过通过使用Xpath
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/table/tbody/tr[1]/td/a"))
).click()
但这没能找到元素。任何帮助都会很棒!这是相关的HTML
<a class="navcontent" href=f5-h-$$/MSL/jsp/openGimPage.jsp?gimEnv=GIM&ep=GIMV" target="blank>
<img onclick="F5_r2u();F5_Event_common(event);try{return(eval(F5_Invoke_eval_event(null,F5_jsBody(function(){parent.trackUserActivity(this,'o','Portlet : Incident Management '+(this.src).split('/images/')[1].split('.')[0]);
<p id="text" style="top: 7px">View</p></a>
编辑:这是HTML的剩余部分HTML 的剩余部分
找到了答案。正如昆都克指出的那样,它在一个iFrame内。我必须使用以下命令来选择iFrame,然后单击其中的按钮。
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
driver.find_element_by_css_selector("body > table > tbody > tr:nth-child(1) > td > a")
尝试按照xpath
来识别元素。使用element_to_be_clickable
((而不是presence_of_element_located
((
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[./p[text()='View']]"))).click()
感谢您的建议。我也有这个问题,用泰勒的方法解决了。但我使用了下面的代码来解决问题。
driver.switch_to.frame(browser.find_element_by_tag_name("iframe"))
driver.find_element(by=By.XPATH, value="XPATH")