Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Selenium Python中验证web元素的文本是否匹配?_Python_Selenium_Pycharm_Assert - Fatal编程技术网

如何在Selenium Python中验证web元素的文本是否匹配?

如何在Selenium Python中验证web元素的文本是否匹配?,python,selenium,pycharm,assert,Python,Selenium,Pycharm,Assert,我一直在做一个项目,需要在seleniumpython中断言web元素的文本。下面是我的意思示例: 示例 我想要断言的是图像最右侧的值6.00,以及图像左下角的值$6.00 示例.py class Example: def checkValue(self): element 1 = self.driver.find_element_by_xpath("//div[contains(text(),'6.00')]") element 2

我一直在做一个项目,需要在
seleniumpython
中断言web元素的文本。下面是我的意思示例:

示例

我想要断言的是图像最右侧的值
6.00
,以及图像左下角的值
$6.00

示例.py

class Example:

    def checkValue(self):
       element 1 = self.driver.find_element_by_xpath("//div[contains(text(),'6.00')]")
       element 2 = self.driver.find_element_by_xpath("//label[contains(text(),'Total Amount: $6.00')]")
class Test:

    def test_1:
        np = new Example()
        np.checkValue()
Test.py

class Example:

    def checkValue(self):
       element 1 = self.driver.find_element_by_xpath("//div[contains(text(),'6.00')]")
       element 2 = self.driver.find_element_by_xpath("//label[contains(text(),'Total Amount: $6.00')]")
class Test:

    def test_1:
        np = new Example()
        np.checkValue()

我已经包括了这两个元素的蓝图。我可以知道如何在这个
示例.py
程序中包含
assert
命令吗?

您应该检查这两个元素是否都具有给定的价格,或者您可以检查给定的元素是否具有预期的值

选择1 按价格查找元素并让selenium引发异常:

def检查值(自身、预期价格):
elem1_xp='//tr[@whatever]//td[contains(text(),“%s”)]'%expected_price#小计价格元素的xpath,调整它
elem2_xp='//div[contains(text(),“Total amount:$%s”)]'%expected_price#Total元素的xpath,请调整它
element_1=self.driver.find_element_by_xpath(elem1_xp)
element_2=self.driver.find_element_by_xpath(elem2_xp)
使用此解决方案,当找不到
元素_1
元素_2
时,将引发异常,您将看到找不到哪个元素。这里不需要断言。如果两个元素都找到,则检查通过

如果正在搜索
6.00
,并且该元素在屏幕上出现两次,则需要小心避免两次找到同一元素(或元素及其父元素)

选择2 检查两个元素的值是否匹配。这里的第一件也是最重要的事情是为这两个元素提供精确的
xpath

def检查值(自身、预期价格):
elem1_xp='//tr[@whatever]//td[4]'#价格小计元素的精确xpath
elem2_xp='//div[包含(text(),“总额:$”)'#总价元素
element_1_value=self.driver.find_element_by_xpath(elem1_xp).text
element_2_value=self.driver.find_element_by_xpath(elem2_xp).text.replace(“总额:$”,“”)
断言元素_1_值==元素_2_值==预期_价格,“价格不匹配!预期价格为%s,小计为%s,总价为%s”%(预期_价格,元素_1_值,元素_2_值)

您应该检查这两个元素是否都具有给定的价格,或者您可以检查给定元素是否具有预期值

选择1 按价格查找元素并让selenium引发异常:

def检查值(自身、预期价格):
elem1_xp='//tr[@whatever]//td[contains(text(),“%s”)]'%expected_price#小计价格元素的xpath,调整它
elem2_xp='//div[contains(text(),“Total amount:$%s”)]'%expected_price#Total元素的xpath,请调整它
element_1=self.driver.find_element_by_xpath(elem1_xp)
element_2=self.driver.find_element_by_xpath(elem2_xp)
使用此解决方案,当找不到
元素_1
元素_2
时,将引发异常,您将看到找不到哪个元素。这里不需要断言。如果两个元素都找到,则检查通过

如果正在搜索
6.00
,并且该元素在屏幕上出现两次,则需要小心避免两次找到同一元素(或元素及其父元素)

选择2 检查两个元素的值是否匹配。这里的第一件也是最重要的事情是为这两个元素提供精确的
xpath

def检查值(自身、预期价格):
elem1_xp='//tr[@whatever]//td[4]'#价格小计元素的精确xpath
elem2_xp='//div[包含(text(),“总额:$”)'#总价元素
element_1_value=self.driver.find_element_by_xpath(elem1_xp).text
element_2_value=self.driver.find_element_by_xpath(elem2_xp).text.replace(“总额:$”,“”)
断言元素_1_值==元素_2_值==预期_价格,“价格不匹配!预期价格为%s,小计为%s,总价为%s”%(预期_价格,元素_1_值,元素_2_值)

为什么我没有想到这一点?那很有用。我将尝试一下,并尽快让您知道第一个问题,我发现Python 2.7不支持“f”前缀。我该如何解决这个问题。我使用的是PyCharm 2020.3'f-strings'是python3.6+。好的。将更改为3.7,那么如果我从测试类实例化它呢?
预期价格
必须用正确的东西初始化?为什么我没有想到呢?那很有用。我将尝试一下,并尽快让您知道第一个问题,我发现Python 2.7不支持“f”前缀。我该如何解决这个问题。我使用的是PyCharm 2020.3'f-strings'是python3.6+。好的。将更改为3.7,那么如果我从测试类实例化它呢?
预期价格
必须用一些东西初始化,对吗?