我需要点击此网站上的“ 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)是循环变量,但实际上它们不会改变代码的结果。
答案 0 :(得分:1)
您是否尝试过使用xpath //a[contains(text(),'Visualizar cruzeiros')
?这应该返回多个元素,您需要获取第二个元素。
尝试使用Selenium IDE编写一个测试用例,它可能会提示您如何访问元素。
答案 1 :(得分:0)
在selenium ide ++中,此代码有效:
{
"Name": "Untitled",
"CreationDate": "2019-3-13",
"Commands": [
{
"Command": "open",
"Target": "https://www.disneytravelcenter.com/MIN-000000000031063/sites++disney-cruise-line++cruises-destinations++alaska++view-sailings++view-sailings/",
"Value": ""
},
{
"Command": "click",
"Target": "link=Visualizar cruzeiros@POS=4",
"Value": ""
}
]
}
您可以将此代码粘贴到source code tab中。
link=Visualizar cruzeiros@POS=4
表示您需要的此单词是第4个匹配项。
答案 2 :(得分:0)
找出我问题的答案:
button = driver.find_elements_by_xpath('//*[@id="jb-card-txt-blk-redirect-link-zone-' + zona + 'night-' + str(c) + '"]')[2]
button.click()