2

普段はjavaでwebdriverを使っていますが、今度はwebriverとPythonで作る必要があります

Pythonでテキストを読む方法を丸一日過ごし、理解できません

xpathで読み取り、名前をアサートする必要があります

Java の場合:

{driver.findElement(By.xpath("//*[@id='reportCriteria']/fieldset[1]/fieldset[1]/dl/dd/div/span/label")).getText());    
assertEquals(testedVenueName, driver.findElement(By.xpath("//*[@id='reportCriteria']/fieldset[1]/fieldset[1]/dl/dd/div/span/label")).getText());}

Python の場合:

{inputElement = self.driver.find_elements_by_xpath("//*[@id='pagemenu']/li/a")
self.assertEqual("Home", inputElement)}

結果: "ホーム" =! []

「.text」を最初の行に配置しようとした後、または「inputElement.text」でエラー メッセージ AttributeError: 'list' object has no attribute 'text' が表示される

完全なコード:

class Test(unittest.TestCase):
    def setUp(self):

        profile = webdriver.FirefoxProfile()
        profile.native_events_enabled = True
        self.driver = webdriver.Firefox(profile)

    def testWebtest_1(self):

        self.driver.get("http://www.psvitahub.com/")

        inputElement = self.driver.find_elements_by_xpath("//*[@id='pagemenu']/li/a")                                    

        self.assertEqual("Home", inputElement.text)

    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main()
4

2 に答える 2

2
  1. find_elements_by_xpathではなくを使用してfind_element_by_xpathいるため、期待するような単一の要素ではなく、xpath に一致するすべての要素のリストをページから取得しています。

  2. 呼び出しから空のリストを取得しているため、xpath が正しくないと思われます。

于 2012-09-13T15:40:07.210 に答える
0

CSSセレクターを使用してみてください:

self.driver.find_element_by_css("ul#pagemenu li.current_page_item a")

firebug の xpath は次のようになります: "/html/body/div[2]/div/div/div/div/div/div/div/div/ul/li/a"

于 2012-09-17T16:14:36.713 に答える