是否可以通过硒元素的onclick
元素的部分值来点击元素?查找并单击“onclick”部分值中的项目
页面上有多个输入项目,我只需要选择一个具有特定字符串的项目。
例子是:
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','2BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','2 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Presidential','false','AC')">
如果接近尾声注意到,有一个“1卧室豪华”,“2卧室豪华”,“1个卧室总统”。由于它是一种输入项目,因此我无法过滤任何文本,但我只需要选择特定的项目,例如2 Bedroom Deluxe。
有什么我可以的意义上说:
buttons = driver.find_elements_by_name('booksubmit')
for button in buttons:
if button ........
东西或其他?我目前正在使用beautifulsoup4来解析页面上的html,并检索与该项目相关的文本,所以我不知道是否可以合并。从外观上看,该页面是一个HTML表中的格式:
+--------------------------------------------------------------------+
| 1 Bedroom Deluxe | $25 | [button i don't care about] |
|------------------------+---------+---------------------------------|
| 2 Bedroom Deluxe | $50 | [button i'm trying to click] |
|------------------------+---------+---------------------------------|
| 1 Bedroom Presidential | $50 | [button i don't care about] |
+--------------------------------------------------------------------+
编辑:
我猜得太早公布这一点。紧接着,一位同事走过来,建议通过Xpath找到元素:
driver.find_element_by_xpath('//input[contains(@onclick,"1 Bedroom Deluxe")]')
太棒了!我甚至没有想到get_attribute方法,然后搜索它。肯定会对其他项目有所帮助。谢谢! – crookedleaf