硒:无法找到元素

时间:2019-07-10 11:50:19

标签: python-3.x selenium

因此,我试图识别此按钮以将其按下,但出现异常:

  

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素

下图显示了按钮: enter image description here

奇怪的是,我已经在登录页面中确定了登录按钮,但是进入下一个页面后,就好像无法再标识一个元素了,可能是因为该页面无法允许吗?

#This one works
driver.find_element_by_class_name("urBtnStdNew").click()
#This one give the exception
driver.find_element_by_id("sapbi_snippet_TABSTRIP_CONTAINER_ITEM_1").click()
#This is the HTML of that element
<span class="urTbsTxtOff">DPD Trend</span></td>

编辑:谢谢大家,我不知道iframe的存在,所以切换它解决了我的问题。

iframe = driver.find_element_by_xpath("//iframe[@name='iframe_Roundtrip_9223342']")
driver.switch_to.frame(iframe)

3 个答案:

答案 0 :(得分:0)

使用value,然后跟随WebDriverWait单击xpath标签。

DPD Trend

答案 1 :(得分:0)

Hamza, WebDriverWait不起作用。如您所述,您尝试使用Thread.sleep(),但WebDriver仍然找不到该元素。

在我看来,这个问题似乎是由于使用了错误的元素定位器造成的。

如果屏幕快照中的按钮是红色框中的按钮,并且元素检查器中红色框中的代码与此相关,那么在我看来ID应该为TABSTRIP_CONTAINER_ITEM_1_tabStrip_tabstrip-itm-5。 因此,根据上面的示例,以下代码应找到“ DPD趋势”按钮并单击它:

driver.find_element_by_id("TABSTRIP_CONTAINER_ITEM_1_tabStrip_tabstrip-itm-5").click()

答案 2 :(得分:0)

正确的XPath定位器将很简单:

//span[text()='DPD Trend']

如果仍然无法找到该元素: