Selenium通过xpath找不到元素

时间:2017-11-29 23:22:52

标签: python selenium xpath

因此,为了在某个页面中找到一个单词,我决定这样做:

    bodies = browser.find_elements_by_xpath('//*[self::span or self::strong or self::b or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or self::p]')
    for i in bodies:
        bodytext = i.text
        if "description" in bodytext or "Description" in bodytext:
            print("found")
            print(i.text)

我相信代码本身很好,但最终我什么都没得到。说实话,我不确定发生了什么,看起来它似乎不起作用。 以下是运行website的示例。以下是一些页面来源:

<h2>product description</h2>
编辑:可能是因为该元素不在视野中,但我试图用它来解决这个问题。但是,没有运气。

2 个答案:

答案 0 :(得分:0)

您可以尝试等待几毫秒以确保页面已呈现,并且预期元素可见:

time.sleep(1)

或者,尝试使用ID或自定义数据属性来定位元素而不是xpath。像find_by_css_selector('.my_class')这样的东西可能效果更好。

答案 1 :(得分:0)

检查元素并检查其是否在iframe中

如果确实切换到框架

driver.switch_to_frame(frame_id)