小编caf*_*eyd的帖子

Python Selenium + Datepicker问题

我试图让每一天的可用性/价格https://www.homeaway.pt/arrendamento-ferias/p418841点击日历,检查这天被占用与否,点击next按钮,以便它可以跳到下个月.

我还想点击到货日期,然后选择结账日期,以便我可以看到它的价格.

我遇到了问题,因为我尝试使用chrome工作的命令但是它们似乎不能在selenium中工作.

例如:

我做:

        self.driver.get(url)
        wait = WebDriverWait(self.driver, 10)
        try:
            elem = wait.until(
                EC.visibility_of_element_located(
                    (
                        By.CSS_SELECTOR,
                        "#startDateInput"
                    )
                )
            )
        except TimeoutException:
            pass
        else:
            elem.send_keys(Keys.NULL)
Run Code Online (Sandbox Code Playgroud)

这似乎打开了日历,我还可以列出可选择的日期:

for x in self.driver.find_elements_by_css_selector(".stab-calendar-day.stab-calendar-day-active.stab-calendar-day-selectable.pull-left"): print(x.get_attribute('data-formatted-date'))
Run Code Online (Sandbox Code Playgroud)

但是当我想跳到下一个活跃的月份时,它会一直显示相同的初始月份,这是因为这不起作用:

self.driver.find_element_by_css_selector('.stab-calendar-controls-next').click()
Run Code Online (Sandbox Code Playgroud)

selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:{"method":"css selector","selector":".stab-calendar-controls-next"}

关于我如何获得每套选定日期房屋的可用性/价格的任何想法?

python selenium datepicker web-scraping

5
推荐指数
1
解决办法
470
查看次数

将连接池与 Jedis 一起使用

我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。

当我调用 Web 服务时,我想做jedis.hmgetjedis.exitshgetALL 之类的操作

例如:

jedis.hmget("employee:data:" + emp_user_id, "employee_id").get(0);
Run Code Online (Sandbox Code Playgroud)

我用于 Redis 的配置是:

Jedis jedis;

    JedisShardInfo shardInfo;

    @PostConstruct
    public void init() {

        try {

            shardInfo = new JedisShardInfo(Config.getRedisHost(), Config.getRedisPort());
            shardInfo.setPassword(Config.getRedisPassword());
            jedis = new Jedis(shardInfo);
            jedis.select(2);
        //jedis.se
        } catch (Exception e) {
            logger.error("Exception in init ------- > " + e);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我知道 Jedis 不是线程安全的。当我同时使用 1000 个线程调用该服务时,我收到异常作为流的意外结束。我想知道 Jedis 池是线程安全的吗?无法为它找到特定的解决方案。

谢谢。任何帮助,将不胜感激。

java multithreading connection-pooling jedis spring-boot

5
推荐指数
1
解决办法
8966
查看次数

Log4J输出到控制台和文件会产生警告/错误log4j:没有为appender设置WARN文件选项

我想将Log4J日志记录集成到我的Java应用程序中,将信息写入日志文件以及在控制台上显示信息.不幸的是,我遇到了一些麻烦.我在Win 7上使用Eclipse Juno.

我的log4j.properties文件:

#configure logfile
log4j.appender.logfile = org.apache.log4j.RollingFileAppender
log4j.appedner.logfile.File = MyAppLog.log
log4j.appender.logfile.Append = true
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n

#configure stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n

log4j.rootLogger = debug, logfile, stdout
Run Code Online (Sandbox Code Playgroud)

我相信上面是关于这个主题的一些其他公认答案的模式.

我已经用VM参数指定了这个log4j.properties文件的位置:

-Dlog4j.configuration=file:///${workspace_loc}\path\to\file\log4j.properties
Run Code Online (Sandbox Code Playgroud)

我在我的java类中实例化记录器:

static Logger logger = Logger.getLogger(MyApp.class.getName());
Run Code Online (Sandbox Code Playgroud)

记录一个字符串:

logger.info("barfoo");
Run Code Online (Sandbox Code Playgroud)

此配置会在启动时导致以下警告/错误:

log4j:WARN File option not set for appender [logfile].
log4j:WARN Are you using FileAppender instead of ConsoleAppender? …
Run Code Online (Sandbox Code Playgroud)

java eclipse log4j

2
推荐指数
1
解决办法
2万
查看次数

java运行时异常:构建uberjar和zip包时“找不到内容类型的编写器”

使用maven assembly插件构建uberjar然后打包成zip文件时,遇到运行时失败:

java.lang.RuntimeException: could not find writer for content-type text/xml type: java.lang.String

当我在 eclipse 中运行我的项目时,或者当我使用 eclipse Export -> Runnable Jar File 创建和可执行 .jar 时,不会发生这种故障,所以我怀疑我使用 maven 创建 uberjar 的方式有问题。

我该如何解决这个问题?

java eclipse uberjar maven

2
推荐指数
1
解决办法
1043
查看次数

将文件从一个 AWS 账户中的 S3 存储桶复制到另一个 AWS 账户

另一个 AWS 账户拥有一个 S3 存储桶,其中包含一个文件列表。我需要将文件复制到我的 S3 存储桶。为了做到这一点,我想执行两件事:

  1. 在另一个账户中添加一个 S3 存储桶事件,这将触发 lambda 来复制我的 aws 账户中的文件。
  2. 我的 lambda 应该被提供权限(可能通过一个假定的角色)以复制文件。

为了实现 1 和 2,我必须执行哪些步骤?

amazon-s3 amazon-web-services amazon-iam aws-lambda

1
推荐指数
1
解决办法
5419
查看次数