我试图让每一天的可用性/价格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"}
关于我如何获得每套选定日期房屋的可用性/价格的任何想法?
我正在使用 Jedis 连接 REST 服务中的 Redis 服务器。
当我调用 Web 服务时,我想做jedis.hmget、jedis.exits和hgetALL 之类的操作。
例如:
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 池是线程安全的吗?无法为它找到特定的解决方案。
谢谢。任何帮助,将不胜感激。
我想将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) 使用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 的方式有问题。
我该如何解决这个问题?
另一个 AWS 账户拥有一个 S3 存储桶,其中包含一个文件列表。我需要将文件复制到我的 S3 存储桶。为了做到这一点,我想执行两件事:
为了实现 1 和 2,我必须执行哪些步骤?
java ×3
eclipse ×2
amazon-iam ×1
amazon-s3 ×1
aws-lambda ×1
datepicker ×1
jedis ×1
log4j ×1
maven ×1
python ×1
selenium ×1
spring-boot ×1
uberjar ×1
web-scraping ×1