如何在表列表行中查找元素

时间:2017-10-19 15:00:49

标签: python selenium html-table webdriver element

我正在尝试自动化salesforce,但是我在定位器方面遇到了一些麻烦。我正在使用Python和selenium webdriver来做到这一点。

我正在尝试点击此元素(给定的代码段):

< th scope = "row"
class = " dataCell  cellCol1 " > < a href = "javascript:srcUp(%27%2F0019E00000SLiUQ%3FsrPos%3D0%26srKp%3D001%26isdtp%3Dvw%27);"
data - seclke = "Account"
data - seclkh = "73556054e04c9691f20b5b34809356fd"
data - seclki = "0019E00000SLiUQ"
data - seclkp = "/0019E00000SLiUQ"
data - seclkr = "1"
onmousedown = "searchResultClick.mousedown(this, event)" > Harris Kemp < /a></th >

但是,由于某种原因,它找不到它。

我尝试过在网上找到的不同解决方案,但似乎都没有。

这是我的代码:

driver.switch_to.frame(1)
    # driver.switch_to.frame(driver.find_element_by_id("history-iframe"))
    # mouseDown() // i entered the location of the element here
    # pyautogui.click() // i entered the location of the element here 

这是我尝试的另一种方式:

    elem = driver.find_element_by_xpath("//a[@data-seclkr='1']")
    driver.execute_script("arguments[0].click();", elem)

我已经使用了所有不同的xpath,它仍然不会点击它。

如果有人能帮帮忙,我将非常感激。

I have attached the full html body image here

2 个答案:

答案 0 :(得分:3)

要找到“编辑”元素,您可以执行以下操作:

elem1= driver.find_element_by_xpath("//td[@class='actionColumn']")
elem1.find_element_by_xpath(".//a[@class='actionLink']").click()

如果您想点击“Harris Kemp”,请尝试:

elem1= driver1.find_element_by_xpath("//th[@scope='row']")
elem1.find_element_by_xpath(".//a[@data-seclke='Account' and text()='Harris Kemp']").click() 

答案 1 :(得分:1)

您可以从网站上选择一个简单的标签并尝试类似下面的内容吗?

假设这是HTML脚本:

<div id='a'>
  <div>
    <a class='click'>abc</a>
  </div>
</div>

你的python脚本应该是:

driver.find_element_by_xpath("//div[@id='a']//a[@class='click']")

输出应为:

<a class="click">abc</a>

然后尝试将.click()放在python代码的末尾