检查找到的元素的算术值

时间:2019-03-18 13:36:23

标签: python python-3.x selenium selenium-webdriver

使用命令:

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
for list_AnyNumber in AnyNumber:
    print(int(list_AnyNumber.text))

我得到10个数字(例如10、20、30等) 如何检查每个下一个元素是否大于上一个?

6 个答案:

答案 0 :(得分:0)

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
for index, list_AnyNumber in enumerate(AnyNumber):
    if index > 0:
        print(int(AnyNumber[index].text) > int(AnyNumber[index-1],text))

或者您可以将foreach循环更改为for in range()

答案 1 :(得分:0)

获取长度计数并用于循环和if条件。希望获得帮助。

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
ncount=len(AnyNumber)
for l in range(ncount-1):
    if int(AnyNumber[l+1].text) > int(AnyNumber[l].text):
     print(int(AnyNumber[l+1].text))

答案 2 :(得分:0)

这是一种有趣的方法。假设您的列表称为any_number_list。然后,您可以使用以下语法:

sequence = [y - x for x, y in zip(any_number_list[:-1], any_number_list[1:]) if y - x < 0] 
if not sequence:
    print("Each element is greater than the previous one")

您使用zip打包两个数组并进行遍历,如果差小于0,则将差添加到名为sequence的新数组中。如果最后该数组包含任何数字,则此不是单调非下降序列。

答案 3 :(得分:0)

AnyNumber=['14','22','33', '41', '55']
x=len(AnyNumber)
for index, list_AnyNumber in enumerate(AnyNumber):
    if index < (x-1):
        if int(AnyNumber[index + 1]) > int(AnyNumber[index]):
            print(str(AnyNumber[index + 1]) + ">" + str(list_AnyNumber))

基于this users答案

答案 4 :(得分:0)

我找到了另一个论坛上提出的解决方案

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
buffer = 0
for AnyNumbers in AnyNumber:
    if int(AnyNumbers) > buffer:
        print('more than')
    elif int(AnyNumbers) < buffer:
        print('less than')
    else:
        print('is')
    buffer = int(AnyNumbers)

答案 5 :(得分:-1)

最简单的方法是对列表进行排序,然后与原始列表进行比较。如果数字按预期增加,则它们应该匹配。

您需要做的第一件事是将字符串列表转换为int列表,然后进行排序,然后进行比较。

一个简单的例子,

list = ['10', '20', '30', '40', '50']
int_list = [int(i) for i in list]
print(int_list == sorted(int_list))

这将打印True,因为原始列表已排序。

要查看失败的案例,

list = ['50', '20', '30', '10', '40']
int_list = [int(i) for i in list]
print(int_list == sorted(int_list))

您的代码将类似于

list = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
int_list = [int(i.text) for i in list]
print(int_list == sorted(int_list))