如何在 python 中使用 selenium 在 netflix 上定位并单击 "speed test" link?
How to locate and click "speed test" link on netflix using selenium in python?
我是 selenium 的初学者,如果问题很愚蠢(很愚蠢),我深表歉意:)
我需要在 https://www.netflix.com/ 上找到 Speed test link 然后点击它。
我试过按文本和其他一些选项进行搜索。但是好像没什么用,我也不知道为什么。
from selenium import webdriver
from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
driver.implicitly_wait(10)
elem = driver.find_element_by_link_text("Speed test")
elem.click()
NoSuchElementException:消息:没有这样的元素:无法定位元素:{"method":"link text","selector":"Sign in"}
(会话信息:chrome=75.0.3770.142)
使用 WebDriverWait
和 element_to_be_clickable
以及以下 xpath。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
elem = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@data-uia='data-uia-footer-label'][contains(.,'Speed Test')]")))
elem.click()
浏览器快照:
要添加到此答案,您需要使用 WebDriverWait
,然后单击元素 Show more info
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
elem = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@data-uia='data-uia-footer-label'][contains(.,'Speed Test')]")))
elem.click()
WebDriverWait(driver,60).until(EC.element_to_be_clickable((By.XPATH,"//a[contains(.,'Show more info' )]"))).click()
文本为速度测试的元素不在Viewport so you need to induce WebDriverWait for the desired element to be clickable()
and you can use the following 中:
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='footer-link']/span[text()='Speed Test']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我是 selenium 的初学者,如果问题很愚蠢(很愚蠢),我深表歉意:) 我需要在 https://www.netflix.com/ 上找到 Speed test link 然后点击它。
我试过按文本和其他一些选项进行搜索。但是好像没什么用,我也不知道为什么。
from selenium import webdriver
from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
driver.implicitly_wait(10)
elem = driver.find_element_by_link_text("Speed test")
elem.click()
NoSuchElementException:消息:没有这样的元素:无法定位元素:{"method":"link text","selector":"Sign in"} (会话信息:chrome=75.0.3770.142)
使用 WebDriverWait
和 element_to_be_clickable
以及以下 xpath。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
elem = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@data-uia='data-uia-footer-label'][contains(.,'Speed Test')]")))
elem.click()
浏览器快照:
要添加到此答案,您需要使用 WebDriverWait
,然后单击元素 Show more info
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.netflix.com/")
elem = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@data-uia='data-uia-footer-label'][contains(.,'Speed Test')]")))
elem.click()
WebDriverWait(driver,60).until(EC.element_to_be_clickable((By.XPATH,"//a[contains(.,'Show more info' )]"))).click()
文本为速度测试的元素不在Viewport so you need to induce WebDriverWait for the desired element to be clickable()
and you can use the following
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='footer-link']/span[text()='Speed Test']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC