Selenium类名称根据悬停移动而变化

时间:2017-09-15 18:29:55

标签: python selenium

html中的Javascript基于悬停更改为类名。因此,我无法点击该对象。

请检查here以查看我的HTML代码和对象图片

到目前为止我尝试了什么:

select_project = WebDriverWait(driver, 2).until(
    EC.presence_of_element_located((By.XPATH ,"//a[@class='smalltextnolink']")))
select_project.click()

select_project = driver.find_element_by_xpath("//div/table/tbody/tr/td[2]")
select_project.click()

3 个答案:

答案 0 :(得分:0)

尝试通过CSS部分匹配进行选择。

select_project = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[class^="smalltext"]')))
select_project.click()

答案 1 :(得分:0)

尝试使用以下CSS选择器:

[onmouseover*='smalltextul']

答案 2 :(得分:0)

如何将标记添加到xpath中:

select_project = driver.find_element_by_xpath("//div/table/tbody/tr/td[2]/a")

select_project.click()

我想到的另一个选择是将它们视为两个不同的元素,如果你真的想按类定位它们:

保持按钮悬停:Is there a way to perform a mouseover (hover over an element) using Selenium and Python bindings?

firefox = webdriver.Firefox()
firefox.get('http://foo.bar')
element_to_hover_over = firefox.find_element_by_id("baz")
hover = ActionChains(firefox).move_to_element(element_to_hover_over)
hover.perform()

然后找到具有新类的元素并执行单击