Selenium无法按链接文字找到元素:
time.sleep(3);
driver = self.driver
driver.implicitly_wait(10)
findHeaderLearn = driver.find_element_by_link_text('Learn')
findHeaderLearn.click()
pageTitle = driver.title
driver.back()
return pageTitle
我收到此错误: 提出exception_class(消息,屏幕,堆栈跟踪) NoSuchElementException:消息:u'无法找到元素:{“method”:“link text”,“selector”:“Learn”}'; Stacktrace:
我通过网络广泛阅读,但无法找到任何有关它无法找到元素的提示。
添加了“implicitly_wait(10)”以确保元素可见,但它没有解决问题。
还有其他想法吗?
以下是HTML代码:
<div class="l-wrap">
<h1 id="site-logo">
<div id="nav-global">
<h2 class="head">
<ul class="global-nav">
<li class="global-nav-item">
<li class="global-nav-item">
<a class="global-nav-link" href="/learn/">Learn</a> ======> im trying to find this element
</li>
<li class="global-nav-item">
<li class="global-nav-item">
<li class="global-nav-item global-nav-item-last buy-menu">
<li class="global-nav-item global-nav-addl">
</ul>enter code here
</div>
<a class="to-bottom" href="#l-footer">Jump to Bottom of Page</a>
</div>
答案 0 :(得分:0)
尝试使用其他定位器,最好是Css Selector或XPath。请勿使用find_element_by_link_text
。
CSS选择器:
findHeaderLearn = driver.find_element_by_css_selector("#nav-global a[href*='learn']")
的XPath:
findHeaderLearn = driver.find_element_by_xpath(".//*[@id='nav-global']//a[contains(@href, 'learn')]")
# findHeaderLearn = driver.find_element_by_xpath(".//*[@id='nav-global']//a[text()='Learn']")
答案 1 :(得分:0)
通过linktext查找元素可能不如CSS选择器或xpath可靠。在对元素执行任何操作之前,还请验证该元素是否陈旧