从日期选择器获取可用性

2024-01-25

我试图通过单击日期选择器日历中的下一个按钮来获取 homeaway 每天的价格,但没有运气。

我当前的代码是这样的:

def handle(self, *args, **options):
    def homeaway(self):
        display = Display(visible=0, size=(1024, 768))
        display.start()
        driver = webdriver.Firefox()
        driver.maximize_window()

        wait = WebDriverWait(driver, 10)

        url = 'https://www.homeaway.pt/arrendamento-ferias/p1418427a?uni_id=1590648'
        driver.get(url)

        # pick start date
        start_date = wait.until(EC.visibility_of_element_located((
                                                                 By.CSS_SELECTOR,
                                                                 ".quotebar-container input[name=startDateInput]")))
        start_date.click()

        first_available_date = wait.until(EC.element_to_be_clickable(
            (By.CSS_SELECTOR, "#ui-datepicker-div td.full-changeover > a")))
        ActionChains(driver).move_to_element(first_available_date).perform()
        driver.find_element_by_css_selector(
            "#ui-datepicker-div td.full-selected.full-changeover > a").click()

        # pick end date (TODO: violates DRY principle, refactor!)
        end_date = wait.until(EC.visibility_of_element_located(
            (By.CSS_SELECTOR, ".quotebar-container input[name=endDateInput]")))
        end_date.click()

        first_available_date = wait.until(EC.element_to_be_clickable(
            (By.CSS_SELECTOR, "#ui-datepicker-div td.full-changeover > a")))
        ActionChains(driver).move_to_element(first_available_date).perform()
        driver.find_element_by_css_selector(
            "#ui-datepicker-div td.full-selected.full-changeover > a").click()

        # get the calculated price
        price = wait.until(EC.visibility_of_element_located(
            (By.CSS_SELECTOR, ".price-quote .price-total")))

        print(price.text.encode('ascii', 'ignore'))

        driver.close()

它们都有效,但只能持续 1 个月。我希望能够设置 X 个月。例如对于我尝试过的回家self.driver.find_element_by_css_selector('.ui-datepicker-next.ui-corner-all').c‌​lick()第一次打开日历点击后,但我得到了ElementNotVisibleException

提前致谢


要在日期选择器已打开时单击“下个月”按钮,请尝试以下操作:

def click_next_month(self):
    elements = self.driver.find_element_by_xpath('//span[@class="ui-icon ui-icon-circle-triangle-e"]')
    elements[1].click()

点击“下个月”按钮几次需要重新定义elements每次,所以最好将这两个操作(定义列表和按钮单击)作为方法来实现click_next_month().

如果出现任何问题,请尝试告诉我

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从日期选择器获取可用性 的相关文章

随机推荐

  • $q 承诺 - 对象不是函数

    我想运行承诺样本https docs angularjs org api ng service q https docs angularjs org api ng service 24q 这是我的代码 angular module test
  • 在所需文件夹中安装 python 包

    我已经下载了一个 python 包安装在我的 ubuntu 机器上 该包已经有一个 setup py 文件可供使用 但我想将默认的 python 安装地址更改为其他地址 专门用于该包 并且不是很好 所以我尝试的是 首先在终端中 我导出新文件
  • RabbitMQ 更改生产系统上的队列参数

    我在面向服务的架构中使用 RabbitMQ 作为消息队列 其中许多单独的 Web 服务发布绑定到 RabbitMQ 队列的消息 这些队列依次被不同的消费者订阅 这些消费者执行后台工作 RabbitMQ 的一个非常普通的用例 现在我想更改一些
  • 如何使用多个VAO和VBO在OpenGL中绘制多个对象?

    我正在尝试使用多个 VAO 和 VBO 在 OpenGL 中渲染多个对象 要使用相同的顶点渲染多个对象 我已经做到了 但我想做的是为每个对象使用不同的顶点 例如绘制一个正方形和一个圆形 对于正方形 我只需要 6 个顶点 但对于圆形 我需要
  • TeamCity 中的 MSBuild 步骤考虑 ASP.NET WEB API 项目的 app.config 而不是 web.config,导致警告 MSB3247

    我有带有 Web conig 文件的 ASP NET WEB API 项目 当它在 VS2015 中构建时 不会报告任何错误和警告 但是 当我使用 MSBuild 构建步骤在 TeamCity 上构建此项目时 我收到警告 MSB3247 R
  • 更改 SQLite3 中的值

    我将首先展示代码 create table products name text primary key price INTEGER insert into table products name price values coke 8 i
  • pom.xml(Maven 多模块项目)中的 在本地工作,但不在公司服务器上工作

    我在用着
  • 由于与 UserInterfaceState.xcuserstate 冲突而无法合并

    我创建了一个分支并做了很多更改 我提交了更改 然后存档了更改 然后我切换到master分支并尝试进行合并 它说我有未提交的更改 所以我在 master 分支上做了一次提交 看看它在说什么 它说有一个名为 UserInterfaceState
  • 扩展 Scala Enumeration.Val 时如何获得正确的值类型

    虽然 S O 上有很多关于 Scala 枚举困难的问题 但我还没有找到解决我的问题的问题 具体来说 我正在尝试将 Planet 示例从Oracle Java 枚举文档 http docs oracle com javase tutorial
  • Primefaces 菜单栏菜单项宽度

    我在使用菜单项时遇到问题 想要附上照片 但不允许所以如果没有它 问题就很愚蠢 我似乎无法更改下拉菜单的宽度 我已经在我的头脑中包含了一个样式 并在其中包含了一个宽度属性 每个菜单项 但它们没有区别 当菜单项突出显示时 选择栏的宽度是正确的
  • 尝试从 MySQL DB 添加视图时出现“命令执行期间遇到致命错误”

    我正在尝试将 MySQL 数据库中的一些表和视图添加到 VS2005 中的项目中 经过大量研究后 我最终使用了 ADO NET 连接器 它工作得很好 除了尝试使用数据源配置向导添加视图时 我收到 命令执行期间遇到致命错误 错误消息 并且当我
  • tableView.tableHeaderView 已设置但未绘制

    每当我设置 tableHeaderView 时 我都不会在模拟器中看到它 如果我将其添加为子视图 它最终会绘制在节标题下方 知道我在这里缺少什么吗 我有一个 XIB 文件 不过 我没有在 IB 中看到任何影响 headerView 的属性
  • 从 JSF 中的托管 bean 获取资源文件的路径

    我遇到这种情况 我试图在从托管 bean 中放置新的头像图像之前删除用户的旧头像图像 String fileName resources img useravatars getSessionBean getSearchAccount get
  • Dagger v2:将 2 个不同的范围注入到一个对象中

    我将 moduleA 设置为应用程序范围的单例提供程序 将 ModuleB 设置为用户相关的对象提供程序 我的用户显示片段将使用系统范围总线向其他人发送消息并使用用户相关对象进行显示 问题是无法将不同的作用域类注入一个对象 使用 compo
  • 动态设置DIV的高度

    在 Web 应用程序中 我有一个页面 其中包含一个 DIV 该 DIV 具有自动宽度 具体取决于浏览器窗口的宽度 我需要对象的自动高度 DIV 从距顶部屏幕约 300 像素的位置开始 其高度应使其延伸到浏览器屏幕的底部 我有容器 DIV 的
  • invoke virtual 总是动态绑定吗?

    今天我的一位朋友告诉我 如果一条指令是invoke virtual 那么它总是动态绑定 而invokespecial总是静态绑定 这是真的吗 如果是 那么为什么当带有final关键字的方法也调用virtual时呢 请澄清我的这个疑问 从本质
  • 基于 APR 的 Apache Tomcat Native 库的不兼容版本 [1.1.34]

    在我的 openSUSE Leap 42 3 服务器上 在嵌入式 Tomcat 服务器上启动 Spring Boot 2 0 0 M6 应用程序期间 我在日志中看到以下错误 ERROR 30471 main o a catalina cor
  • 检查字符是否为数字?

    我需要检查是否justPrices i substr commapos 2 1 该字符串类似于 blabla 120 在本例中 它将检查 0 是否是一个数字 如何才能做到这一点 您可以使用比较运算符来查看它是否在数字字符范围内 var c
  • 基于 Spring Javaconfig 的按名称自动装配不起作用

    我正在尝试使用基于 Javaconfig 的 Spring 配置 我有两个相同类型的 bean 并尝试通过限定符自动装配它们 但它似乎不起作用 这是我的配置类 Configuration EnableAutoConfiguration Co
  • 从日期选择器获取可用性

    我试图通过单击日期选择器日历中的下一个按钮来获取 homeaway 每天的价格 但没有运气 我当前的代码是这样的 def handle self args options def homeaway self display Display