Python selenium无法通过类名或xpath找到元素
我是硒的新手。我开始通过书本学习硒。我还与硒的不明行为作斗争。出于教育目的,我使用本网站: -我试图通过它的类名来查找SearchButton,也就是class='ButtonSearchButton',或者通过xpath来查找它Python selenium无法通过类名或xpath找到元素,python,selenium-webdriver,Python,Selenium Webdriver,我是硒的新手。我开始通过书本学习硒。我还与硒的不明行为作斗争。出于教育目的,我使用本网站: -我试图通过它的类名来查找SearchButton,也就是class='ButtonSearchButton',或者通过xpath来查找它 search_button = self.driver.find_element_by_xpath('/html/body/div/div[2]/header/div/div[4]/form/div[1]/button') 或 但每次硒都找不到它。请帮助我了解这种行
search_button = self.driver.find_element_by_xpath('/html/body/div/div[2]/header/div/div[4]/form/div[1]/button')
或
但每次硒都找不到它。请帮助我了解这种行为的原因。多谢各位
我使用了Selenium IDE,它显示了XPATH://按钮[@type='submit']
当我试图通过xpath查找元素时,我遇到了相同的错误,这很奇怪。请告知
我的代码是:
import unittest
from selenium import webdriver
class HomePageTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
#create new Firefox session
cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
#navvigate to application home page
cls.driver.get('http://magento-demo.lexiconn.com/')
def test_search__text_field_max_length(self):
#get the search text box
search_field=self.driver.find_element_by_id("search")
#check maxlenght attribute st to 128
self.assertEqual("128",search_field.get_attribute("maxlength"))
def test_search_button_enabled(self):
# get Search button
search_button = self.driver.find_element_by_class_name('button')
# check Search button is enabled
self.assertTrue(search_button.is_enabled())
@classmethod
def tearDown(self):
#close the browser window
self.driver.quit()
if __name__=='__main__':
unittest.main(verbosity=2)
试试这个:
search_button = self.driver.find_element_by_xpath('//button[@class="button search-button"]')
尝试下载selenium IDE插件,安装并开始录制。单击所需的按钮,查看其目标在IDE中的记录方式。通过编程,selenium将接受与IDE相同的XPath和其他选择器。在IDE中记录之后,目标字段上会有一个下拉列表,让您可以看到选择该元素的所有不同方式,即xpath与按类等 您可以尝试:
css=button.button.search-button
//button[@type='submit']
//form[@id='search_mini_form']/div/button
我认为问题在于你的定位器不够具体。页面上有多个按钮,页面上有多个class=button的元素。这个CSS选择器适合我
self.driver.find_element_by_css_selector("button[title='Search']")
使用xpath定位器试试这种方法
说明:使用标签的title属性
或
说明:使用标签的title和type属性
请包括您收到的任何错误消息。错误在拆卸方法中。我想做出更大的回答,但我被禁止了如果论坛中有教育方面的内容?请将此答案标记为已接受,如果它解决了您的问题。
self.driver.find_element_by_css_selector("button[title='Search']")
self.driver.find_element_by_xpath("//button[@title='Search']")
self.driver.find_element_by_xpath("//button[@title='Search'][@type='submit']")