如何在Python中单击/提交onclick值

时间:2015-10-15 01:46:00

标签: python html python-3.x selenium selenium-webdriver

我对我写的Selenium Python代码有疑问。 该网站有一堆时间段,我试图模拟鼠标点击,专门针对8:30-11:30的时间段。

以下是html:

的摘录
    <div class="item-link" onclick="$('#SelectedStartTime').val('2015/10/16 08:30:00');$('#frmTimes').submit();">
        <div class="item">
            <div class="title">8:30 AM-11:30 AM
                <span class="available">(Spaces: <strong class="num">20</strong>)</span>
            </div>
        </div>
    </div>
    <div class="item-link" onclick="$('#SelectedStartTime').val('2015/10/16 09:00:00');$('#frmTimes').submit();">
        <div class="item">
            <div class="title">9:00 AM-12:00 PM
                <span class="available">(Spaces: <strong class="num">20</strong>)</span>
            </div>
        </div>
    </div>
</body>
</html>

我已尝试定位&#34; 8:30 AM-11:30 AM&#34;文本,

Time0830 = driver.find_elements_by_class_name("title")
for each in Time0830:
    if "8:30 AM-11:30 AM" in each.text:
        each.click()
        break

for each in Time0830:
    if each.text == "8:30 AM-11:30 AM"
        each.click()
        break

两者都没有做任何事情。

我还尝试根据this question定位onclick。

Time0830 = driver.find_element_by_xpath('.//div[contains(@onclick,"8:30 AM-11:30 AM")]')
print (Time0830)
Time0830.click()

这导致错误:NoSuchElementException

Time0830 = driver.find_element_by_css_selector("div[onclick*='8:30 AM-11:30 AM']")
print(Time0830)
Time0830.click()

这也导致Error: NoSuchElementException

我需要做些什么才能让它发挥作用?

修改!! 感谢您对xpath帮助的帮助。我认为问题还在于我无法点击它。 我一直在使用.click(),但它已不再使用了。 我的代码现在是:

time.sleep(1.5)
Time0830 = driver.find_element_by_xpath('//div[@class = "item-link" and .//div[@class = "title" and contains(text(),"8:30 PM-11:30 PM")]]').click()

但页面仍然没有移动。我有时间考虑加载时间。 我没有点击()尝试过,似乎找到了一个元素。我找到了错误的元素,还是使用了错误的函数?

1 个答案:

答案 0 :(得分:0)

您如何将divitem-link类匹配,该类具有div元素的8:30 AM-11:30 AM元素:

//div[@class = "item-link" and .//div[@class = "title" and contains(., "8:30 AM-11:30 AM")]]