遍历下拉选项

时间:2019-06-05 21:03:34

标签: ruby selenium-webdriver

我在Ruby(我目前正在学习的一种语言)中使用Selenium,但是我有一个要迭代的下拉菜单,选择每个选项,做一些事情,然后转到下一个选项。 / p>

我看了几个相似的答案。只有一个Stack Overflow问题与我的想法有相似的想法,但是它在Python中,我只是不知道Ruby的语法。

我已经阅读了Ruby的文档,却没有发现任何与Python方式类似的东西。

基本上我想做的是:

import logging
import os

import structlog

TRACE = 19

structlog.stdlib.TRACE = TRACE = 5 # this overrides the 19 above with a 5, is that right?
structlog.stdlib._NAME_TO_LEVEL['trace'] = TRACE
structlog.stdlib._LEVEL_TO_NAME[TRACE] = 'trace'


def trace(self, msg, *args, **kw):
    return self.log(TRACE, msg, *args, **kw)


structlog.stdlib._FixedFindCallerLogger.trace = trace
structlog.stdlib.BoundLogger.trace = trace

logging.basicConfig(
    level=int(os.environ.get("LOGLEVEL", TRACE)),
    format=os.environ.get("LOGFORMAT", '%(levelname)-8s= %(asctime)-15s = %(message)s'))

structlog.configure(
    processors=[
        structlog.stdlib.filter_by_level,
        structlog.stdlib.add_logger_name,
        structlog.stdlib.add_log_level,
        structlog.stdlib.PositionalArgumentsFormatter(),
        structlog.processors.StackInfoRenderer(),
        structlog.processors.format_exc_info,
        structlog.processors.UnicodeDecoder(),
        structlog.stdlib.render_to_log_kwargs,
    ],
    context_class=dict,
    logger_factory=structlog.stdlib.LoggerFactory(),
    wrapper_class=structlog.stdlib.BoundLogger,
    cache_logger_on_first_use=True,
)

logging.addLevelName(TRACE, "TRACE")

LOG = structlog.getLogger()
LOG.trace('test')

这可能吗?我可以弄清楚返回上一页并单击csv选项,但希望在语法部分获得帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

myString.append("\"id\" : ").append(vars.get("varName_" + i)); 的ruby绑定具有Select类,用于处理选择列表。

这是一个人为设计的示例,该示例查找select_list元素,将该元素传递给Select对象,并打印列表中每个选项的文本。 YMMV ...

selenium-webdriver