-1

使用命令:

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

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

4

6 回答 6

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)
于 2019-03-20T10:34:34.123 回答
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()

于 2019-03-18T13:41:39.857 回答
0

取长度计数并使用 for 循环和 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))
于 2019-03-18T13:51:16.403 回答
0

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

您需要做的第一件事是将字符串列表转换为 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))
于 2019-03-19T15:25:41.803 回答
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您使用并遍历它们打包两个数组,sequence 如果差异小于 0,则将差异添加到新数组中。如果最后这个数组包含任何数字,那么这不是单调非下降序列。

于 2019-03-18T13:53:59.657 回答
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))

基于此用户的回答

于 2019-03-18T14:00:33.553 回答