Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单击按钮并使用selenium读取元素_Python_Selenium - Fatal编程技术网

Python 单击按钮并使用selenium读取元素

Python 单击按钮并使用selenium读取元素,python,selenium,Python,Selenium,我试图使用selenium单击页面上的链接,并在单击按钮后读取某个元素,但不断遇到以下错误消息: ElementClickInterceptedException: Message: element click intercepted: Element <li class="clink-hold">...</li> is not clickable at point (367, 727). Other element would receive the click: &l

我试图使用selenium单击页面上的链接,并在单击按钮后读取某个元素,但不断遇到以下错误消息:

ElementClickInterceptedException: Message: element click intercepted: Element <li class="clink-hold">...</li> is not clickable at point (367, 727). Other element would receive the click: <iframe id="google_ads_iframe_/21732118914/box_live-medrectangle-2_0" title="3rd party ad content" name="google_ads_iframe_/21732118914/box_live-medrectangle-2_0" width="970" height="90" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" srcdoc="" sandbox="allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" style="border: 0px; vertical-align: bottom;" data-google-container-id="13" data-load-complete="true"></iframe>
  (Session info: chrome=78.0.3904.108)

您需要切换到iframe:

iframe = driver.find_element_by_xpath("//iframe[@class='ifram_class_name']")
然后:

driver.switch_to.frame(iframe)
cdriver.find_element_by_class_name('clink-hold').click()
sleep(10)
text=cdriver.find_element_by_class_name('name').text
print(text)
最后:

driver.switch_to.default_content()

这是因为谷歌广告与你的按钮重叠:

您需要首先关闭广告。以下是交叉[x]元素:

x


然后继续您的代码。

只需添加已添加的答案即可。我设法解决了这个问题。我意识到,正如Alexey提到的,有一个元素(广告)涵盖了我试图点击的内容。 这就是我为解决这个问题所做的

def click_info():
    cdriver = webdriver.Chrome(chromedriver)
    cdriver.get(page_link)
    element = cdriver.find_element_by_class_name('clink-hold')
    cdriver = cdriver.execute_script('arguments[0].click();',element)
    text=cdriver.find_element_by_class_name('contestant-name line-ignore').text
    print(text)

似乎需要切换到iframe@Wonka你是什么意思?似乎你要瞄准的元素在
iframe
内,所以你需要先切换到
iframe
`驱动程序.切换到.frame(“您的帧”)'
def click_info():
    cdriver = webdriver.Chrome(chromedriver)
    cdriver.get(page_link)
    element = cdriver.find_element_by_class_name('clink-hold')
    cdriver = cdriver.execute_script('arguments[0].click();',element)
    text=cdriver.find_element_by_class_name('contestant-name line-ignore').text
    print(text)