1

我需要 python 代码方面的帮助,以便我可以在图像上Sony使用click 事件selenium webdriver。我是 selenium 网络驱动程序和 python 的新手。请注意,点击“Testing Inc.”后 图像,将显示具有登录详细信息的下一页。

这是Javascript代码:-

<div class="idpDescription float"><span class="largeTextNoWrap indentNonCollapsible">Sony Inc.</span></div> <span class="largeTextNoWrap indentNonCollapsible">Sony Inc.</span> 

我编写的 Python 代码,但单击图像时未发生单击事件:-

import os 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys

# get the path of IEDriverServer 
dir = os.path.dirname(file) 
Ie_driver_path = dir + "\IEDriverServer.exe"
#create a new IE session 
driver = webdriver.Ie("D:\SCripts\IEDriverServer.exe") 
driver.maximize_window()
#navigate to the application home page 
driver.get("example.com") 
element=driver.find_element_by_partial_link_text("Testing Inc.").click();
4

2 回答 2

1

当您使用 搜索时by_partial_link_text,Selenium 需要ahtml 标记内的文本。因为它在 a 里面span,所以它不会找到它。

你可以做什么:

  1. 编写一个 Css 选择器以仅使用标签和属性来查找包含所需图像的标签。在这里,您需要检查整个 HTML。由于我无权访问它,我只能假设以下示例。

    div.idpDescription span
    
  2. 根据文本内容编写 XPath。XPath 对您来说可能更难理解,因为您不习惯使用 Selenium 进行开发。

    //span[text()='Sony Inc.']
    
于 2018-05-03T12:47:25.670 回答
0

根据您共享的HTML和代码试用,当您尝试使用Sony Inc.的文本click()WebElement上调用时,您需要诱导WebDriverWait以使元素可点击,如下所示:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='idpDescription float']/span[@class='largeTextNoWrap indentNonCollapsible']"))).click()

您可以更精细地将链接文本添加到xpath,如下所示:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='idpDescription float']/span[@class='largeTextNoWrap indentNonCollapsible' and contains(.,'Sony Inc.')]"))).click()
于 2018-05-03T12:43:20.340 回答