检查找到的元素的算术值

问题描述 投票:-1回答:6

使用命令:

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

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

python python-3.x selenium selenium-webdriver
6个回答
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()


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的新数组添加差异。如果最后,此数组包含任何数字,则这不是单调非下降序列。


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答案


0
投票

取长度计数并用于循环和条件。希望得到这个帮助。

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))

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)

-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))
© www.soinside.com 2019 - 2024. All rights reserved.