【问题标题】:Click on Javascript Link using Selenium Python单击使用 Selenium Python 的 Javascript 链接
【发布时间】:2019-03-13 17:22:52
【问题描述】:

我需要点击此站点上的“Visualizar cruzeiros”按钮:https://www.disneytravelcenter.com/MIN-000000000031063/sites++disney-cruise-line++cruises-destinations++alaska++view-sailings++view-sailings/

不幸的是,我无法通过简单地使用:

visualizar = driver.find_element_by_css_selector('#jb-card-txt-blk-redirect-link-zone-' + zona + 'night-' + str(c)+ '.redirectLink') visualizar.click()

或使用:

visualizar= driver.find_element_by_class_name('redirectLink')
visualizar.click()

或使用:

visualizar= driver.find_element_by_xpath('//*[@id="jb-card-txt-blk-redirect-link-zone-' + zona + 'night-' + str(c) +'"]')
visualizar.click()

那我应该怎么点击这个按钮呢?

OBS:“zona”和 str(c) 是循环变量,但实际上它们不会改变代码的结果。

【问题讨论】:

    标签: python selenium web-crawler selenium-chromedriver


    【解决方案1】:

    您是否尝试过使用 xpath //a[contains(text(),'Visualizar cruzeiros')?这应该返回多个元素,您需要获取第二个元素。
    尝试使用 selenium IDE 编写测试用例,它可能会提示您如何访问元素。

    【讨论】:

    • 尝试您的解决方案给了我这个作为返回:消息:无效选择器:无法使用 xpath 表达式定位元素 //a[contains(text(),'Visualizar cruzeiros') 因为以下原因错误:SyntaxError: 无法对“文档”执行“评估”:字符串“//a[contains(text(),'Visualizar cruzeiros')”不是有效的 XPath 表达式。
    • 我的代码行:visualizar = driver.find_elements_by_xpath("//a[contains(text(),'Visualizar cruzeiros')")[0] visualizar.click()
    【解决方案2】:

    找到了我的问题的答案:

    button = driver.find_elements_by_xpath('//*[@id="jb-card-txt-blk-redirect-link-zone-' + zona + 'night-' + str(c) + '"]')[2]
    button.click()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2016-08-22
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多