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

使用Python在Selenium中查找元素有困难,python,selenium,Python,Selenium,我试图熟悉硒元素,但在寻找元素时遇到了一个问题,事实上我注意到了很多 我想去yahoo.com,点击体育,并断言页面标题是正确的。下面抛出一条“无法定位元素”错误消息。我尝试过ID、xPath等。我还尝试过其他页面元素、邮件、新闻等。所有这些都会抛出相同的错误。我是不是遗漏了什么 import unittest import selenium from selenium import webdriver from selenium.webdriver.common.keys import Key

我试图熟悉硒元素,但在寻找元素时遇到了一个问题,事实上我注意到了很多

我想去yahoo.com,点击体育,并断言页面标题是正确的。下面抛出一条“无法定位元素”错误消息。我尝试过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()

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

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

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

谢谢你的帮助。这确实让我克服了那个错误,但现在我看到了一个NameError:name'driver'没有与以下内容相关的定义:actual_title=driver.getTitle()尝试
actual_title=self.driver.title
啊,谢谢。我现在看到了其他错误,但您解决了我最初的问题。我将通过其他人工作。感谢您的帮助此id不是动态的吗?应该在下次跑步时更改吗?