首页 文章

使用Python在Selenium中查找元素很困难

提问于
浏览 193
2

我正在努力让自己熟悉Selenium,并且遇到了一个找到元素的问题,我实际上注意到了这一点 .

我想去yahoo.com,点击体育,断言页面 Headers 是正确的 . 以下引发“无法找到元素”错误消息 . 我已经尝试过ID,xPath等 . 我也尝试过其他页面元素,邮件,新闻等...都抛出相同的错误 . 我在这里错过了什么吗?

import unittest
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# go to Yahoo home page, click on Sports and assert title is correct

class searchMaps(unittest.TestCase):
    # def setup as class method
    @classmethod
    def setUpClass(inst):
        inst.driver = webdriver.Chrome()
        inst.driver.maximize_window()
        inst.driver.get("http://www.yahoo.com")
        inst.driver.implicitly_wait(20)

    def test_click_sports_page(self):
        self.search_field = self.driver.find_element_by_id('yui_3_18_0_3_1527260025921_1028')
        self.search_field.click()
        actual_title = driver.getTitle()
        expected_title = 'Yahoo Sports | Sports News'
        assertEquals(actual_title, expected_title)


    @classmethod
    def tearDownClass(inst):
        inst.driver.quit()


if __name__ == '__main__':
    unittest.main()

1 回答

  • 1

    目标链接的 @id 是动态的,因此每次打开页面时它都会有所不同 .

    尝试使用链接文本来定位元素:

    self.search_field = self.driver.find_element_by_link_text('Sports')
    

相关问题