python 中用于单击图像的 Selenium Web 驱动程序代码
Selenium web driver code in python for clicking an image
我需要 python 代码方面的帮助,以便我可以使用 selenium
webdriver
在图像上点击事件作为 Sony
。
我是 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();
根据您分享的 HTML 和您尝试在 WebElement[上调用 click()
时的代码试用=23=] 文本为 Sony Inc. 您需要诱导 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()
您可以将 Link Text 添加到 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()
当您使用 by_partial_link_text
进行搜索时,Selenium 需要 a
html 标签内的文本。由于它在 span
中,因此不会找到它。
你能做什么:
编写一个 Css 选择器,仅使用标签和属性来查找包含所需图像的标签。这里需要检查整个HTML。由于我无法访问它,因此我只能假设以下示例。
div.idpDescription span
根据文本内容编写XPath。 XPath 对你来说可能比较难理解,因为你不习惯用 Selenium 开发。
//span[text()='Sony Inc.']
我需要 python 代码方面的帮助,以便我可以使用 selenium
webdriver
在图像上点击事件作为 Sony
。
我是 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();
根据您分享的 HTML 和您尝试在 WebElement[上调用 click()
时的代码试用=23=] 文本为 Sony Inc. 您需要诱导 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()
您可以将 Link Text 添加到 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()
当您使用 by_partial_link_text
进行搜索时,Selenium 需要 a
html 标签内的文本。由于它在 span
中,因此不会找到它。
你能做什么:
编写一个 Css 选择器,仅使用标签和属性来查找包含所需图像的标签。这里需要检查整个HTML。由于我无法访问它,因此我只能假设以下示例。
div.idpDescription span
根据文本内容编写XPath。 XPath 对你来说可能比较难理解,因为你不习惯用 Selenium 开发。
//span[text()='Sony Inc.']