【问题标题】:SELENIUM web-driver -> click button in "li" that has "span-classname"SELENIUM web-driver -> 单击“li”中具有“span-classname”的按钮
【发布时间】:2018-08-14 17:20:09
【问题描述】:

我正在用 java 中的 selenium webdriver 来点击“soccer24.com”上的 Next Day 按钮

这是元素代码:

   `<span class="day tomorrow" title="Next day" 
      onclick="change_date('tomorrow'); e_t.track_click('iframe-bookmark- 
       click', 'calendar-arrow-next');"><span class="inner"><span 
    class="arrow"></span></span></span>`

目前我正在尝试这个:

    `WebElement el = driver.findElement(By.id("Day tomorrow"));
    el.click();`

为不好的提问道歉,但我是新手。

非常感谢您的努力。

【问题讨论】:

    标签: java html selenium


    【解决方案1】:

    你错误地使用了类名作为id。所以,你需要使用下面的Xpath

    //li[@id='ifmenu-calendar']//span[@class='day tomorrow']
    

    代码:

    WebElement el=driver.findElement(By.xpath("//li[@id='ifmenu-calendar']//span[@class='day tomorrow']"));
    
    el.click();
    

    【讨论】:

    • 这太棒了。非常感谢。所有这些语法都有点复杂。也感谢大家成功
    • 很高兴知道它有帮助。请点击对勾按钮接受答案..
    • 嘿 subburaj,问题是:它没有给出错误,但也没有达到想要的结果。据说点击了按钮,代码没有改变。我仍然得到“今天”的代码。有什么想法吗?
    【解决方案2】:

    Day Tomorrow 是你的班级名称,而不是 ID。使用下面的代码,如果你遇到任何问题,请告诉我。

    WebElement el = driver.findElement(By.xpath("//*[@class='day tomorrow' and @title='Next Day']"));
    el.click();
    

    或者

    WebElement el = driver.findElement(By.xpath("//*[@title='Next Day']"));
    el.click();
    

    【讨论】:

    • 不幸的是,这也不起作用:/无论如何,谢谢...它总是关闭,说找不到元素。,我也试过“明天”
    • 类属性有多个类名(复合类)时不要使用类名定位器
    • 尝试编辑的答案,请发布错误消息以防万一。谢谢
    • 这就是我得到的:[错误 - 2018-08-14T17:44:09.198Z] WebElementLocator - _handleLocateCommand - 未找到元素:放弃。搜索停止时间:1534268649076 phantomjs://platform/console++.js:263 出错
    • 我认为它应该可以工作,但是第二个答案有一个小错字,他写了 title='Next Day'] 但你的标题是 'Next day' !只需更改大写字母!您也可以尝试自己使用:WebElement el = driver.findElement(By.xpath("//*[@class='day tomorrow']"));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2019-03-02
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多